成功解析 SimpleXMLElement 与“false”的比较,返回“true”

2023-11-30

我在 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。
我读到了有关这两个运算符和 SimpleXMLElement 的内容,在我看来,它应该为这两个运算符返回“false”。 成功解析的 SimpleXMLElement 和布尔值“false”之间的比较返回“true”的可能原因是什么?


我这是使用布尔转换的更好方法(bool)

$simplexml = simplexml_load_string('<a><b>test</b></a>');
var_dump($simplexml); //returns the actual structure
var_dump((bool) $simplexml); // Retuns true
var_dump((bool) $simplexml == false); //returns false
var_dump((bool) $simplexml === false); //returns false   

Demo : http://codepad.viper-7.com/xZtuNG

===比较值和类型……除了对象之外,其中===仅当两个操作数实际上是同一个对象时才为真!对于物体来说,==比较(每个属性的)值和类型,这就是===对于所有其他类型都是如此。

EDIT 1

请参阅类似内容的最新错误https://bugs.php.net/bug.php?id=54547

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

成功解析 SimpleXMLElement 与“false”的比较,返回“true” 的相关文章

随机推荐