PHP中int的最大值是多少?

时间:2009-03-22 07:33:34

标签: php integer

忽略允许你使用非常大的数字的特殊库,你可以在PHP中存储的最大int值是什么?

8 个答案:

答案 0 :(得分:102)

来自PHP manual

  

整数的大小是   平台依赖,虽然是最大的   价值约20亿美元   通常的值(即32位签名)。   PHP不支持unsigned   整数。整数大小可以   使用常数确定   PHP_INT_SIZE,并使用最大值   自PHP以来的常量PHP_INT_MAX   4.4.0和PHP 5.0.5。

     

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

答案 1 :(得分:80)

PHP的32位版本:

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

PHP的64位版本:

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

数字是包容性的。

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

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

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

答案 2 :(得分:19)

PHP整数的大小为platform dependent

  

整数的大小是   平台依赖,虽然是最大的   价值约20亿美元   通常的值(即32位签名)。   PHP不支持unsigned   整数。整数大小可以   使用常数确定   PHP_INT_SIZE,并使用最大值   自PHP以来的常量PHP_INT_MAX   4.4.0和PHP 5.0.5。

PHP 6增加了“longs”(64位整数)。

答案 3 :(得分:15)

(有点晚,但可能有用)

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

任何其他“猜测”或“提示”都可能是错误的。

答案 4 :(得分:5)

我找到了它:2 32 - 1(2147483647)

http://au2.php.net/int

  

整数溢出

     

如果PHP遇到超出整数类型边界的数字,则会将其解释为float。此外,导致超出整数类型边界的数字的操作将返回浮点数。

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

$large_number =  2147483648;
var_dump($large_number);
// output: float(2147483648)

答案 5 :(得分:2)

这取决于您的操作系统,但根据manual,2147483647是常用值。

答案 6 :(得分:0)

尽管PHP_INT_*常数存在很长时间,但是通过左移直到达到负数,可以通过编程找到相同的MIN / MAX值:

$x = 1;
while ($x > 0 && $x <<= 1);
echo "MIN: ", $x;
echo PHP_EOL;
echo "MAX: ", ~$x;

答案 7 :(得分:0)

它取决于运行PHP的服务器的体系结构。对于64位,

print PHP_INT_MIN . ", ” . PHP_INT_MAX;产生-9223372036854775808, 9223372036854775807