2013年6月24日

Integer 整數型態

語法:可以用十進位、十六進位以及八進位來表示,PHP沒有無號整數。
PHP5.4.0可以使用二進位的方式表是一個整數。


<?php
$a = 1234; // 十進位數
$a = -123; // 負數
$a = 0123; // 八進位數 (等於十進位 83)
$a = 0x1A; // 十六進位數 (等於十進位 26)
$a = 0b111; // 二進位數
?>


八進位的怪事
當輸入的值不符合八進位的要求,則會忽略後面的部分

<?php
var_dump(01090); // 010 octal = 8 decimal
?>


根據作業系統的位元數,整數的最大值有所不同,32位元大約是20億左右,64位元最大值大約為9E18

PHP有預定義的常數 PHP_INT_MAX 跟 PHP_INT_SIZE。

<?php
echo PHP_INT_MAX; // 顯示最大的整數值 2147483647
echo PHP_INT_SIZE; // 顯示儲存整數的空間 4 Bytes
?>


整數溢出

當給訂的數字超過了 integer 的範圍,將會被解釋為 float,如果執行後的結果溢出也是會回傳 float。

絕對不要將未知的分數強制轉換為 integer ,有時候會導致非預期的錯誤

<?php
echo (int) ( (0.1+0.7) * 10 ); // 顯示 7!
?>

沒有留言:

張貼留言