PHP - 整数
Integer 是 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
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 不支持 unsigned int。int 的大小取决于平台。在 32 位系统上,最大值约为 20 亿。64 位平台的最大值通常约为 9E18。
可以使用 Constant PHP_INT_SIZE 确定 int 大小,使用 constant PHP_INT_MAX 确定 Maximum value,使用 constant PHP_INT_MIN 确定 Minimum。
如果整数恰好超出 int 类型的边界,或者任何操作导致数字超出 int 类型的边界,则它将被解释为 float。
例看看下面的例子 -
<?php
$x = 1000000;
$y = 50000000000000 * $x;
var_dump($y);
?>
它将产生以下输出 -
float(5.0E+19)
PHP 没有任何整数除法运算符。因此,整数和 float 之间的除法运算始终会导致 float。要获得整除,您可以使用 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)
int(3)