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

从 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)