MacとLinuxで実行されているPHPコードで異なる出力が発生しています。
次のコードを実行している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を更新します。情報:
- varダンプは
þØçï_Kstring(25) "þØçï_K"
- bin2hexは与える
000e1b00000000fe1a16d806e707ef0000045f0000004b0000
数値入力のみを含むように関数を単純化しても、出力は異なります。
$ltt = (254 << 24 | 26 << 16 | 22 << 8 | 216)/ 1000000;
4263.12265
MAMPと-31.84465
LAMPで