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

PHP_INT_SIZE returns 4 But my Operating System Is 64 bit

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

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

不过我觉得应该是8(2^63-1)//^ represents power

谁能解释一下为什么会这样?

整数大小始终 compiler/interpreter/platform 相关(这也适用于其他语言)。
对于 Windows 上的 PHP 它根本不支持 64 位整数,即使硬件和 PHP 都是 64 位

On windows x86_64, PHP_INT_MAX is 2147483647. This is because in the underlying c-code, a long is 32 bit.

Linux on x86_64 uses a 64bit long so PHP_INT_MAX is going to be 9223372036854775807.

如果您需要更高的精度,您可以使用 GMP or BCMath 扩展。

提示:永远不要假设一个类型能够处理的最大值,除非你需要确切的 php version/platform 代码将 运行.

您的 OS 是 64 位的。 您的 PHP 版本是 x86。

如何确定 PHP 版本正在使用常量

PHP_INT_SIZE will return 4 for x86 version

PHP_INT_SIZE will return 8 for x64 version

相关信息:

Doubleword: a 4-byte (32 bit) data item

Quadword: an 8-byte (64 bit) data item

希望这很清楚:)