PHP中int的最大值是多少?

nic*_*ckf 108 php integer

忽略允许您处理非常大数字的特殊库,您可以在PHP中存储的最大int值是多少?

kar*_*m79 112

PHP手册:

整数的大小取决于平台,尽管最大值约为20亿是通常的值(32位有符号).PHP不支持无符号整数.整数大小可以使用常量PHP_INT_SIZE确定,最大值可以使用自PHP 4.4.0和PHP 5.0.5以来的常量PHP_INT_MAX.

64位平台的最大值通常约为9E18,除了PHP之前的Windows,它总是32位.

  • @ karim79,我认为这是因为arch是64位,而不是AMD.=] (36认同)
  • 好吧,在amd64 linux上,现在很常见,它的9223372036854775807(2 ^ 63-1) (13认同)
  • AMD64是AMD和英特尔目前使用的64位架构的一个名称.其他名称包括x64和Intel 64.正如strager所说,与AMD没有任何关系 (7认同)
  • 这是很多数字 - 这是我第一个想到在购买专用服务器时选择AMD而不是英特尔的原因.:) (4认同)
  • 我的Windows XAMPP回声是2147483647.我有AMD Athlon X2 (4认同)

tho*_*ter 85

PHP的32位版本:

  • 整数可以从-2,147,483,6482,147,483,647(〜±20亿)

PHP的64位版本:

  • 整数可以从-9,223,372,036,854,775,8089,223,372,036,854,775,807(〜±9 quintillion)

数字是包容性的.

注意:一些64位版本曾经使用过32位整数,特别是旧的Windows版本的PHP

超出这些范围的值由浮点值表示,这些范围内的非整数值也是如此.解释器将根据计算的结果值是否不能表示为整数,自动确定何时需要切换到浮点.

PHP不支持"无符号"整数,将所有整数的最大值限制为"有符号"整数的范围.


cle*_*tus 21

PHP int的大小取决于平台:

整数的大小取决于平台,尽管最大值约为20亿是通常的值(32位有符号).PHP不支持无符号整数.整数大小可以使用常量PHP_INT_SIZE确定,最大值可以使用自PHP 4.4.0和PHP 5.0.5以来的常量PHP_INT_MAX.

PHP 6增加了"longs"(64位整数).

  • 我没有得到这些downvotes ..这是一个非常好的答案,即使有一些额外的信息投入.+ 1来纠正它. (2认同)
  • 该答案最初显示为“依赖于平台”(不依赖于)。它还(仍然)声称在PHP 6之前不存在64位整数。这是错误的。 (2认同)

Jul*_*ZET 15

(有点晚了,但可能有用)

只信任PHP_INT_MAX和PHP_INT_SIZE,这个值会因你的arch(32/64位)和你的操作系统而异...

任何其他"猜测"或"提示"都可能是错误的.


nic*_*ckf 6

啊,我发现它:2 32 - 1(2147483647)

http://au2.php.net/int

整数溢出

如果PHP遇到一个超出整数类型范围的数字,它将被解释为浮点数。同样,导致数字超出整数类型范围的运算将改为返回浮点数。

<?php
$large_number =  2147483647;
var_dump($large_number);
// output: int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// output: float(2147483648)
Run Code Online (Sandbox Code Playgroud)

  • 这就是32位平台上的情况。还请考虑许多人在64位平台上运行服务器。 (8认同)