我有一个返回
的函数if (file_exists($address)) {
return simplexml_load_file($address) or die("Error loading XML");
}
else {
return false;
}
然后在我的页面上调用我的XML函数
$page = fetchXML();
echo $page->title;
但是我得到了
Notice: Trying to get property of non-object in [...]
当我var_dump($page);
时,我得到bool(true)
为什么不返回我的XML数据?
注意:
如果我
return $address
在我的函数中,然后使用
$page = simplexml_load_file(fetchXML()) or die("Error loading XML");
echo $page->title;
它有效。
答案 0 :(得分:1)
因为你不应该像那样短路:
$ php -r'function foo(){ return 2 or false; } var_dump(foo());'
bool(true)
return
更少优先于or
可以这么说(实际上,它不是运算符,因此运行整个表达式),但是=
有一个更高的。
$page = simplexml_load_file(fetchXML()) or die("Error loading XML");
与:
相同($page = simplexml_load_file(fetchXML())) || die("Error loading XML");
虽然
return simplexml_load_file($address) or die("Error loading XML");
与:
相同return (simplexml_load_file($address) or die("Error loading XML"));