我對simplexml評估有一個非常尷尬和特殊的問題。成功解析SimpleXMLElement與'false'的比較返回'true'
代碼:
$simplexml = simplexml_load_string($xmlstring);
var_dump($simplexml);
var_dump($simplexml == false); //this comparison
的var_dump($ simplexml的)返回simplexml的我的實際結構,但比較返回「真」這個特定的SimpleXML,這是我無法證明,因爲我的合同結構。
我敢肯定,這是非常特定的問題,因爲我嘗試了其他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。
我閱讀了關於這兩個操作符和SimpleXMLElement的內容,並且在我看來,它應該爲兩個操作符都返回'false'。 成功解析SimpleXMLElement和布爾型'false'以返回'true'之間進行比較的可能原因是什麼?
這正是發生了什麼事情。我再次做了測試,現在一切都變得有意義了。我只是不知道沒有文本值的父標記帶有兒童標記帶/不帶文本值被認爲是空的。謝謝 – 2012-04-13 11:19:16
可能發生這種情況是因爲我在文本節點之前得到了太多層次。 – 2012-04-13 11:37:19