我在運行Mac和Linux的PHP代碼中遇到不同的輸出。PHP和Apache2中的奇怪行爲:不同服務器中的不同輸出
我有2個服務器上運行以下代碼:
$ltt = ((ord($str[7]) << 24) | (ord($str[8]) << 16) | (ord($str[9]) << 8) | (ord($str[10])))/1000000;
即使ord(str[ ])
輸出是相同的:
[7] = 254
[8] = 26
[9] = 22
[10] = 216
但是,運行PHP 5.3.6的MAMP棧上(Mac),如果$ ltt最初應該是負數,則返回4263.12265
(不正確)。
在運行相同php版本的LAMP棧(Ubuntu)上,它將返回確切的負值-31.84465
。
出現這種情況只能用負數..
更新ADDL。信息:
- 甲變種轉儲給出
þØçï_Kstring(25) "þØçï_K"
- BIN2HEX給出
000e1b00000000fe1a16d806e707ef0000045f0000004b0000
Simplying功能爲只包括數字輸入,輸出仍然不同:
$ltt = (254 << 24 | 26 << 16 | 22 << 8 | 216)/ 1000000;
4263.12265
在MAMP上和-31.84465
在L上AMP
兩臺機器的PHP配置是否相同?相同的版本並不總是意味着相同的設置;) – Kevin
是一個64位和其他32位?我不認爲它實際上*應該*在這裏雖然... ... – Charles
這兩個都是32位,配置是股票,除了一些內存限制和post_Data的變化.. – kouton