我使用 SimpleXMLElement 发现了一个非常奇怪的行为:
$xmlstr = '<?xml version="1.0" standalone="yes"?>
<movies>
<movie>
<title></title>
</movie>
</movies>';
$movies = new SimpleXMLElement($xmlstr);
$subelement = $movies->movie->title;
echo "Accesing normal: " . PHP_EOL;
echo var_dump($movies->movie->title) . PHP_EOL;
echo var_dump(empty($movies->movie->title)) . PHP_EOL;
echo "Accesing subelement: " . PHP_EOL;
echo var_dump($subelement) . PHP_EOL;
echo var_dump(empty($subelement)) . PHP_EOL;
空函数在使用主对象访问子元素时返回 true,在使用包含子元素的变量访问子元素时返回 false。
为什么如果我在变量中传递元素与传递从主元素加入的元素时,空的行为会有所不同?
在这种情况下,可能空不是检查空的方法,在 simpleXMLElement 中检查元素是否为空的正确方法是什么?