Php 简明教程

PHP - Integers

Integer 是 PHP 中内置标量类型之一。在字面量中没有小数点的整数在 PHP 中为“int”类型。整数可以用十进制(基数 10)、十六进制(基数 16)、八进制(基数 8)或二进制(基数 2)记法表示。

要使用八进制记法,数字之前加上“0o”或“0O”(PHP 8.1.0 及更早版本)。从 PHP 8.1.0 开始,以“0”为前缀且没有小数点的数字为八进制数字。

要使用十六进制记法,数字之前加上“0x”。要使用二进制记法,数字之前加上“0b”。

Example

请查看以下示例:

<?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";
?>

它将生成以下 output

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 的扫描器移除。

Example

请查看以下示例:

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

它将生成以下 output

1_234_567 is an Integer with _ as separator: 1234567

PHP does not support unsigned intsint 的大小依赖于平台。在 32 位系统上,最大值约为二十亿。64 位平台的最大值通常约为 9E18。

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

如果整数恰好超出了 int 类型的边界,或任何操作导致数字超出了 int 类型的边界,它将被解释为浮点数。

Example

请查看以下示例:

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

它将生成以下 output

float(5.0E+19)

PHP 没有用于整数除法的运算符。因此,整数和浮点数之间的除法运算总是导致浮点数。要获得整数除法,可以使用 intval() 内置函数。

Example

请查看以下示例:

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

它将生成以下 output

float(2.857142857142857)
int(3)