intval在win7x64和centos上最大值範圍不同的有關問題
來源:互聯網
上載者:User
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 了,可能已經修複了呢?