当变量应该是一个对象时,变量一直被误认为是一个布尔值

时间:2014-02-18 01:44:16

标签: php xml boolean

我一直有一个问题,我的一个变量$ xml在它应该返回一个对象时一直被误认为是一个布尔值。

我已经尝试将$ xml更改为$ data ...想想这可能是一个命名问题。

我也试过隔离str()函数,但是它被识别为字符串 - 这是正确的。

我也尝试过使用gettype(simplexml_load_string(str());它也会返回一个bool。

请让我知道我可能做错了什么:

    function str() {
        if(file_exists(__DIR__ . '/../' . $clientXML)) {
            return file_get_contents(__DIR__ . '/../' . $clientXML);
        } else {
            return file_get_contents(__DIR__ . '/../xml-skeleton.xml');
        }
    }

    $xml = simplexml_load_string(str());

    echo 'XML IS: ' . gettype($xml);

1 个答案:

答案 0 :(得分:0)

如果simplexml_load_string无法解析xml字符串,则返回FALSE。您可以像这样处理/检查错误:

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if ($sxe === false) {
    echo "Failed loading XML\n";
    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}
?>

取自:http://us3.php.net/manual/en/simplexml.examples-errors.php