怎么快速判断 PHP 是 32 位还是 64位

cera cera

Swoole Compiler 加密是不支持使用 Debug 版本或 32 位的 PHP 的

对于不想看文档安装Swoole Loader扩展的人,我们提供了 Loader-Helper 安装向导,可能会出现一些按照步骤正确放置扩展后,依旧提示未安装的情况

这个时候就可能是因为你所安装的 PHP 是 32 位的,那么如何快速判断 PHP 是 32 位还是 64位的呢

PHP 百科全书是这么说的

可以输出一个超过 42 亿的整数,如 var_dump(12345678900);

如果类型为 float ,表示 PHP 是 32 位的,无法支持超过 42 亿的整数。

如果类型为 int,表示 PHP 是64位的,可以支持超过 42 亿的整数。

这样是可以的,另外一种也可以查看到的方式就是phpinfo()了

phpinfo();
Windows找一下Architecture,如果对应的值为x86则是 32 位的,反之则为 64 位

Linux查看System的值:x86, x64, x86_64

我又不想它输出12345678900,也不想查看phpinfo(),还有其他办法吗

当然是有的:查看PHP_INT_SIZE的值

据说 32 位 PHP 是 4Bytes,而 64位 PHP 是 8Bytes,我测试也的确是这样,所以就拿这个做判断吧

if (PHP_INT_SIZE == 4) {
$bit = 32;
} else {
$bit = 64;
}
目前 Loader-Helper 安装向导就是这么判断的,加了一个提示

已经更新到线上,防止还有使用 32 位 PHP 的人找不到问题所在

over~

cera cloudiplc tengxunyun

相关推荐