php intval返回意外的东西

时间:2014-01-11 18:33:48

标签: php

INTVAL:

  

Get the integer value of a variable

echo intval('1000000000000');

返回2147483647。

为什么?

3 个答案:

答案 0 :(得分:2)

PHP中整数的大小取决于平台。 intval()的文档清楚地解释了这一点:

  

最大值取决于系统。 32位系统的最大有符号整数范围为-2147483648到2147483647.因此,例如在这样的系统上,intval('1000000000000')将返回2147483647 .64位系统的最大有符号整数值是9223372036854775807。

答案 1 :(得分:1)

来自您分享的相同文档..

  

最大值取决于系统。 32位系统有最大值   有符号整数范围-2147483648到2147483647.例如on   这样的系统,intval('1000000000000')将返回2147483647   64位系统的最大有符号整数值是   9223372036854775807。

echo intval('1000000000000');
  

返回2147483647.为什么?

是因为您正在尝试的系统是32位系统

答案 2 :(得分:0)

<强>由于

1。您有32位系统。

2. 这就是为什么你可以操作最大有符号整数范围-2147483648到2147483647`的原因。

对于此值,如果您有64位系统,则没有问题 另一个例子:

32位系统

echo intval('420000000000000000000'); // 2147483647

64位系统

echo intval('420000000000000000000'); // 420000000000000000000