simplexml 評価で非常に扱いにくい特定の問題が発生しました。
コード:
$simplexml = simplexml_load_string($xmlstring);
var_dump($simplexml);
var_dump($simplexml == false); //this comparison
var_dump($simplexml) は、simplexml の実際の構造を返しますが、比較すると、この特定の simplexml に対して「true」が返されます。これは、契約のために構造を表示できません。
他の XML 文字列を試してみたところ、比較で「false」が返されたため、これは非常に具体的な問題であると確信しています。
$simplexml = simplexml_load_string('<a><b>test</b></a>');
var_dump($simplexml); //returns the actual structure
var_dump($simplexml == false); //returns false
「===」演算子を使用して問題を解決しましたが、機能させるだけでは満足できません。「==」演算子が true を返す理由を理解したい。
2 つの演算子と SimpleXMLElement について読んだところ、両方の演算子に対して「false」が返されるはずです。正常に解析された SimpleXMLElement とブール値の「false」を比較して「true」を返す理由として考えられるものは何ですか?