PHP字符串比较:奇怪的结果,可能的类型变化,不知道为什么

PHP字符串比较:奇怪的结果,可能的类型变化,不知道为什么,php,type-conversion,operator-keyword,Php,Type Conversion,Operator Keyword,我知道数字字符串在PHP中可能会被类型篡改,但我不明白为什么会发生这种情况或给出这样的结果: $a="00010010001101000000101"; $b="00010010001101000000001"; $c = (($a == $b) ? "true" : "false"); $d = (($a === $b) ? "true" : "false"); echo $c . " " . $d . "\n"; // true false 但在本例中,$a和$b的定义方式相同,长

我知道数字字符串在PHP中可能会被类型篡改,但我不明白为什么会发生这种情况或给出这样的结果:

$a="00010010001101000000101";
$b="00010010001101000000001";

$c = (($a == $b) ? "true" : "false");
$d = (($a === $b) ? "true" : "false");

echo $c . "  " . $d . "\n";  // true false
但在本例中,$a和$b的定义方式相同,长度相同,但在许多字符中的内容不同。($a==b)如何评估为真?

这是一个错误。测试一下

版本
4.3.1-5.0.5
5.1.1-5.4.3
返回
true-false


版本
5.4.4-5.5.3
return
false

您使用的是什么版本的PHP?我得到了
false-false
。在5.4.16上也得到了
false-false
,这似乎是一个已知的错误,已经修复:可以确认至少PHP5.4.17不再受影响。@SCUZY您使用的是PHP5.4>,而他使用的是PHP5.3或更低版本!您可以在各种php版本中尝试它,看看有哪些工作和dontofc。但无需报告此错误,因为它已被修复>=5.4.4