2147483647 最大存储的数据 现在要存一个 30 亿[3,000,000,000]的数字咋办

2015-01-09 21:15:33 +08:00
 byc8888

php intval(3000000000) 结果为 2147483647 怎么解决

6618 次点击
所在节点    PHP
21 条回复
lostsnow
2015-01-17 23:45:36 +08:00
误人子弟的还真是多

这是因为你的php是32bit的, 就算你的cpu和os是64bit 只要你的php 是32bit 就不支持64位整数

ps1: 话说现在还有不支持64bit的cpu吗
ps2: 如果你用的windows的话, 用官方vc编译的php版本的话, 那么就只能使用字符串来表示了, 因为到目前为止它还不支持64bit int

> http://windows.php.net/download/
> x86_64 Builds
> The x64 builds of PHP for Windows should be considered experimental, and do not yet provide 64-bit integer or large file support. Please see this post(http://marc.info/?l=php-internals&m=137002754604365&w=2) for work ongoing to improve these builds.

ps3: 如果非要想在windows用64bit int的话, 有一个办法那就是用cygwin编译一个64bit的php(貌似也用现成的可以直接用)
ps4: 当然linux是最佳选择 64bit os + 64bit php

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/160749

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX