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

标签 php operating-system

我的操作系统是 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.

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

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

关于PHP_INT_SIZE 返回 4 但我的操作系统是 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27865340/

相关文章:

php - Javascript、PHP、C 和 C++ 的统一编码风格

php - 无法通过 API 将文件从 Wordpress 插件上传到 symfony 后端服务器?

linux - Linux 内核模块中的 module_init 和 init_module 有什么区别?

支持操作系统重建和加载的用于开发的 Android 平板设备

linux - 如何让程序可以由具有所有者权限的特定用户在linux上运行

php - Laravel 为所有自定义助手、 Controller 和模型设置全局变量

php - Cronjob 创建输出文件,但不写入它

php - .htaccess 在 SSL/端口 443 下被忽略

.net - 单操作系统特定 DLL

C 可执行文件可以在所有操作系统上运行吗