PHP 中如何获得 64 位整数?
PHP 中如何获得 64 位整数?
看起来它不是由配置文件决定的,而可能是编译时选项,并且取决于平台。
How can I have a 64-bit integer in PHP?
It seems like it is not by a config file, but rather it might be a compile-time option, and it depends on the platform.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
本机 64 位整数需要 64 位硬件和 64 位版本的 PHP。
在 32 位硬件上:
在 64 位硬件上:
Native 64-bit integers require 64-bit hardware AND the 64-bit version of PHP.
On 32-bit hardware:
On 64-bit hardware:
更新:现在可以了(在 AMD 四核、Windows 8.1 上测试)。
请注意,Windows 上的 PHP 根本不支持 64 位整数,即使硬件和 PHP 都是 64 位。 有关详细信息,请参阅此链接:
UPDATE: It does now (tested on AMD quad core, Windows 8.1).
Note that PHP on Windows does not support 64-bit integers at all, even if both the hardware and PHP are 64-bit. See this link for details:
也许您可以使用 GMP 或 BCMath 扩展。
Maybe you could use either the GMP or BCMath extension.
PHP int 大小与平台相关。 有一个名为 unpack() 的函数,它本质上允许将不同类型的数据从二进制字符串转换为 PHP 变量。 存储为 64 位的唯一方法似乎是将其存储为字符串。
我在以下位置找到了以下代码:
http://www.mysqlperformanceblog.com/2007/03/27/integers-in-php-running-with-scissors-and-portability/" mysqlperformanceblog.com/2007/03/27/integers-in-php-running-with-scissors-and-portability/
PHP int size is platform-dependent. There is a function called unpack() which essentially allows to convert different types of data from binary strings to PHP variables. It seems to be the only way to store as 64 bit is to store it as a string.
I found the following code at:
http://www.mysqlperformanceblog.com/2007/03/27/integers-in-php-running-with-scissors-and-portability/
现在您应该获得 PHP 7 - 完全一致的 64 位支持。 不仅是整数,还包括所有 fstat、I/O 等。Windows 上的 PHP 7 是真正的 64 位。
Now you should get PHP 7 - fully consistent 64-bit support. Not only integers, but also all the fstat, I/O, etc. PHP 7 on Windows is true 64-bit.