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)
广告