PHP_INT_SIZE返回4但我的操作系统是64位

时间:2015-01-09 16:51:25

标签: php operating-system

我的操作系统是Windows 7和64位 现在我运行以下代码:

echo PHP_INT_SIZE;//prints 4
echo PHP_INT_MAX;//prints 2147483647

但我认为它应该是8(2^63-1)//^ represents power

任何人都可以解释为什么会这样吗?

2 个答案:

答案 0 :(得分:5)

整数大小始终依赖于编译器/解释器/平台(这也适用于其他语言) 对于Windows上的PHP,它根本不支持64位整数,即使硬件和PHP都是64位

  

在Windows x86_64上,PHP_INT_MAX是2147483647.这是因为在底层的c代码中,long是32位。

     

x86_64上的Linux使用64位长,因此PHP_INT_MAX将为9223372036854775807。

如果您需要更高的精度,可以使用GMPBCMath扩展名。

提示:永远不要对类型能够处理的最大值进行假设,除非您需要确切地运行代码的php版本/平台。

答案 1 :(得分:0)

您的操作系统是64位。 您的PHP版本是x86。

如何使用常量确定PHP版本

  对于x86版本,

PHP_INT_SIZE将返回 4

     对于x64版本,

PHP_INT_SIZE将返回 8

相关信息:

  

双字:4字节(32位)数据项

     

四字:8字节(64位)数据项

希望很清楚:)