我在 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
。
这只发生在负数..
更新地址。信息:
- 一个 var 转储给出
þØçï_Kstring(25) "þØçï_K"
- bin2hex 给出
000e1b00000000fe1a16d806e707ef0000045f0000004b0000
将函数简化为仅包含数字输入,输出仍然不同:
$ltt = (254 << 24 | 26 << 16 | 22 << 8 | 216)/ 1000000;
4263.12265
在 MAMP 和-31.84465
LAMP 上