【问题标题】:PHP_INT_SIZE returns 4 But my Operating System Is 64 bitPHP_INT_SIZE 返回 4 但我的操作系统是 64 位
【发布时间】:2015-03-08 01:20:42
【问题描述】:

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

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

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

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

【问题讨论】:

标签: php operating-system


【解决方案1】:

整数大小始终取决于编译器/解释器/平台(这也适用于其他语言)。
对于 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 版本/平台上运行,否则切勿对类型能够处理的最大值做出假设。

【讨论】:

  • 这不再适用于 PHP 7,它适用于 PHP 5.6,尽管使用 official builds
【解决方案2】:

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

如何判断PHP版本是否使用常量

对于 x86 版本,PHP_INT_SIZE 将返回 4

对于 x64 版本,PHP_INT_SIZE 将返回 8

相关信息:

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

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

希望这很清楚:)

【讨论】:

    猜你喜欢
    • 2015-02-11
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 2016-02-07
    • 2011-02-20
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多