我的操作系统是 windows 7 和 64 位。
现在我运行以下代码:
echo PHP_INT_SIZE;//prints 4
echo PHP_INT_MAX;//prints 2147483647
不过我觉得应该是8
和(2^63-1)//^代表幂
谁能解释一下为什么会这样?
最佳答案
整数大小总是依赖于编译器/解释器/平台(这也适用于其他语言)。
对于 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或 BCMath扩展名。
提示:永远不要假设一个类型能够处理的最大值,除非您确切需要代码将在哪个 php 版本/平台上运行。
关于PHP_INT_SIZE 返回 4 但我的操作系统是 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27865340/