是否可以使用PHP更改SimpleXMLElement对象内的数据类型?

时间:2012-10-20 03:16:33

标签: php object simplexml type-conversion

我有这个对象

$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';
}

但我仍然想知道是否可以更改对象内部的数据类型(就像在数组中这样做),所以我不必进行类型转换。

4 个答案:

答案 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
}