【发布时间】:2014-02-18 01:44:16
【问题描述】:
我的一个变量 $xml 在应该返回对象时一直被误认为是布尔值。
我尝试将 $xml 更改为 $data... 认为可能是命名问题。
我也尝试过隔离 str() 函数,但它被识别为字符串 - 这是正确的。
我也尝试过使用 gettype(simplexml_load_string(str()); 它也返回一个布尔值。
请让我知道我可能做错了什么:
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);
【问题讨论】:
-
即使
file_exists说文件不存在,你为什么还要打电话给file_get_contents? -
你从不使用的
$contents变量有什么意义? -
你在哪里查看
$xml的类型?不应该是gettype($xml)吗? -
如果
file_get_contents失败,则返回false。这就是你得到的布尔值。 -
对不起。我更新了代码以更准确地影响我看到的行为。