首页 >后端开发 >php教程 >intval在win7x64和centos上最大值范围不同的有关问题

intval在win7x64和centos上最大值范围不同的有关问题

WBOY
WBOY原创
2016-06-13 12:20:321034浏览

intval在win7x64和centos上最大值范围不同的问题
一直使用win7x64进行开发,Web服务器用的是php5.5内置的web服务器,
昨天突然发现一个问题,同样的代码,在win7和centos上,结果不同:
 var_dump(intval('21474836470'));
在Win7上输出:int 2147483647
在Centos输出:int 30000000000

手册上说:
最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647
64 位系统上,最大带符号的 integer 值是 9223372036854775807。 

可是的我系统是win7x64的啊,下载的php也验证了下,是64位版本的,
为什么会出现intval是32位的效果???
在WIndows下看phpinfo,也可以看到是64位:
PHP Version 5.5.14
System  Windows NT 7D494368868AFA1 6.1 build 7601 (Windows 7 Ultimate Edition Service Pack 1) AMD64
Build Date  Jun 25 2014 12:37:32
Compiler  MSVC11 (Visual C++ 2012) 
Architecture  x64 
------解决思路----------------------
这个不仅仅要看操作系统的版本,还要看php的版本,官方发布的PHP版本均为32位
------解决思路----------------------
是否需要用 64 位版本进行开发,需要看运行环境而定。
不然你做的项目会因找不到 64 位服务器而流产
另外,64位系统有真假之分:64位系统64位架构 和 64位系统32位架构(在32位系统中称 32位 和 准32位)

再有就是,或与你遇到的问题可能是个 bug(可上bug网站上查查)现在都 5.6.9 了,可能已经修复了呢? 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn