gpt4 book ai didi

php - 成功解析 SimpleXMLElement 与 'false' 的比较,返回 'true'

转载 作者:可可西里 更新时间:2023-11-01 00:49:45 25 4
gpt4 key购买 nike

我遇到了一个关于 simplexml 评估的非常尴尬和具体的问题。

代码:

$simplexml = simplexml_load_string($xmlstring);
var_dump($simplexml);
var_dump($simplexml == false); //this comparison

var_dump($simplexml) 返回我的 simplexml 的实际结构,但比较返回此特定 simplexml 的“true”,由于我的契约(Contract),我无法显示结构。
我确定这是一个非常具体的问题,因为我尝试了其他 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 与 bool 值“false”进行比较以返回“true”的可能原因是什么?

最佳答案

我认为这是使用 bool 转换 (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

演示:http://codepad.viper-7.com/xZtuNG

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

编辑 1

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

关于php - 成功解析 SimpleXMLElement 与 'false' 的比较,返回 'true',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10131045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com