奇怪的字符串与整数比较结果
当比较字符串与整数时,由于 PHP 的类型强制规则,可能会出现一些意外的结果。在提供的示例中:
$test1 = "d85d1d81b25614a3504a3d5601a9cb2e"; $test2 = "3581169b064f71be1630b321d3ca318f"; if ($test1 == 0) echo "Test 1 is Equal!?"; if ($test2 == 0) echo "Test 2 is Equal!?";
测试 1 成功,因为字符串“d85d1d81...”不包含有效的数字数据,因此它被解释为 0。
但是,测试 2 失败因为字符串“3581169b...”确实包含有效的数字数据(最初的“3581169”)。根据 PHP 的转换规则,这个初始部分用于确定数值,该数值是不是 0。
PHP 手册解释了字符串的计算方式如下:
对于 $test2,最初的“3581169”是有效的数值数据,因此该值不是0,比较失败。
以上是为什么在 PHP 中比较字符串与 0 会产生意外结果?的详细内容。更多信息请关注PHP中文网其他相关文章!