提问人:nickf 提问时间:3/22/2009 最后编辑:PHPLovernickf 更新时间:6/29/2019 访问量:156611
PHP 中 int 的最大值是多少?
What's the maximum value for an int in PHP?
答:
啊,我找到了: 232 - 1 (2147483647)
整数溢出
如果 PHP 遇到超出整数类型范围的数字,它将被解释为浮点数。此外,如果操作产生的数字超出整数类型的边界,则将返回浮点数。
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)
$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648)
评论
PHP ints 的大小取决于平台:
整数的大小为 取决于平台,尽管最大值 价值约20亿是 常用值(即 32 位有符号)。 PHP 不支持无符号 整数。整数大小可以是 使用常量确定 PHP_INT_SIZE,最大值使用 自 PHP 以来的恒定PHP_INT_MAX 4.4.0 和 PHP 5.0.5。
PHP 6 添加了 “longs”(64 位整数)。
评论
这取决于您的操作系统,但根据手册,2147483647是通常的值。
评论
从PHP手册中:
整数的大小为 取决于平台,尽管最大值 价值约20亿是 常用值(即 32 位有符号)。 PHP 不支持无符号 整数。整数大小可以是 使用常量确定 PHP_INT_SIZE,最大值使用 自 PHP 以来的恒定PHP_INT_MAX 4.4.0 和 PHP 5.0.5。
64 位平台的最大值通常约为 9E18,但在 PHP 7 之前的 Windows 上,它始终是 32 位。
评论
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 位整数,尤其是较旧的 PHP Windows 版本
超出这些范围的值由浮点值表示,这些范围内的非整数值也是如此。解释器将根据计算的结果值是否不能表示为整数,自动确定何时需要切换到浮点。
PHP 本身不支持“无符号”整数,将所有整数的最大值限制在“有符号”整数的范围内。
评论
unsigned long
int
number
number
number
long
unsigned long long
number
(有点晚了,但可能有用)
只信任 PHP_INT_MAX 和 PHP_INT_SIZE,此值因您的架构(32/64 位)和操作系统而异......
任何其他“猜测”或“提示”都可能是错误的。
尽管常量存在很长时间,但可以通过左移以编程方式找到相同的 MIN / MAX 值,直到达到负数:PHP_INT_*
$x = 1;
while ($x > 0 && $x <<= 1);
echo "MIN: ", $x;
echo PHP_EOL;
echo "MAX: ", ~$x;
它受制于运行PHP的服务器的体系结构。对于 64 位,
print PHP_INT_MIN . ", ” . PHP_INT_MAX;
收益 率-9223372036854775808, 9223372036854775807
上一个:更改文件夹中的所有匹配项
下一个:Javascript 中的结构
评论