我有这个对象
$data = simplexml_load_string('<xml><admin>0</admin></xml>');
其中$ data-&gt; admin =“0”(string)
。因此,对于字符串0,以下将始终返回true
if($data->admin) {
echo 'is admin';
}
通过转换变量,这将正常工作
if((int)$data->admin) {
echo 'is admin';
}
但我仍然想知道是否可以更改对象内部的数据类型(就像在数组中这样做),所以我不必进行类型转换。
答案 0 :(得分:0)
不使用SimpleXML。你可以做的是改用DOMDocument。建议不要使用SimpleXML。
答案 1 :(得分:0)
如果string为'0',则返回false。如果将其强制转换为int,它仍将返回false。并且最后逻辑表达式被转换为布尔值。所以你要做的就是无用)
答案 2 :(得分:0)
没有办法在PHP中这样做,而不是类型转换它你可以尝试这个解决方案
if ($data->admin != 0){
//is admin
}
答案 3 :(得分:0)
你也可以尝试这个)虽然我不认为它的好方法)这里最好的是再次比较零而不是进行类型转换。如果你想要类型转换,你可以做以下。但是进行3次操作而不是1)
是不好的做法$data = simplexml_load_string('<xml><admin>0</admin></xml>');
if(strip_tags($data->admin->asXML()))
{
//is admin
}