PHP - 整數



整數是PHP中內建的標量型別之一。字面量中沒有小數點的整數在PHP中屬於“int”型別。整數可以用十進位制(基數10)、十六進位制(基數16)、八進位制(基數8)或二進位制(基數2)表示。

要使用八進位制表示法,數字前要加上“0o”或“0O”(PHP 8.1.0及更早版本)。從PHP 8.1.0開始,以“0”為字首且沒有小數點的數字是八進位制數。

要使用十六進位制表示法,請在數字前加上“0x”。要使用二進位制表示法,請在數字前加上“0b”。

示例

請看下面的例子:

<?php
   $a = 1234; 
   echo "1234 is an Integer in decimal notation: $a\n";

   $b = 0123; 
   echo "0o123 is an integer in Octal notation: $b\n";

   $c = 0x1A; 
   echo "0xaA is an integer in Hexadecimal notation: $c\n";

   $d = 0b1111;
   echo "0b1111 is an integer in binary notation: $d";
?>

它將產生以下輸出

1234 is an Integer in decimal notation: 1234
0o123 is an integer in Octal notation: 83
0xaA is an integer in Hexadecimal notation: 26
0b1111 is an integer in binary notation: 15

從PHP 7.4.0開始,整數字面量可以使用下劃線 (_) 作為數字之間的分隔符,以提高字面量的可讀性。這些下劃線將被PHP的掃描器移除。

示例

請看下面的例子:

<?php
   $a = 1_234_567; 
   echo "1_234_567 is an Integer with _ as separator: $a";
?>

它將產生以下輸出

1_234_567 is an Integer with _ as separator: 1234567

PHP不支援無符號整數int的大小取決於平臺。在32位系統上,最大值約為二十億。64位平臺的最大值通常約為9E18。

可以使用常量PHP_INT_SIZE確定int的大小,使用常量PHP_INT_MAX確定最大值,使用常量PHP_INT_MIN確定最小值。

如果一個整數超出了int型別的範圍,或者任何操作的結果都超出了int型別的範圍,它將被解釋為浮點數。

示例

請看下面的例子:

<?php
   $x = 1000000;
   $y =  50000000000000 * $x;
   var_dump($y); 
?>

它將產生以下輸出

float(5.0E+19)

PHP沒有整數除法的運算子。因此,整數和浮點數之間的除法運算始終返回浮點數。要獲得整數除法,可以使用intval()內建函式。

示例

請看下面的例子:

<?php
   $x = 10;
   $y = 3.5;
   $z = $x/$y;
   var_dump ($z);
   $z = intdiv($x, $y);
   var_dump ($z);
?>

它將產生以下輸出

float(2.857142857142857)
int(3)
廣告