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
希望这很清楚:)
我的操作系统是 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
希望这很清楚:)