忽略允许你使用非常大的数字的特殊库,你可以在PHP中存储的最大int值是什么?
答案 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位版本:
PHP的64位版本:
数字是包容性的。
注意:一些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)
答案 4 :(得分:5)
我找到了它:2 32 - 1(2147483647)
整数溢出
如果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