Php simplexml/xpath的简洁版本?

Php simplexml/xpath的简洁版本?,php,xpath,simplexml,Php,Xpath,Simplexml,目前我有: $content = ($propXml->xpath('//content/section[@name="accommodations"]/content')); $content = is_array($content) && (count($content)>0)?(string)$content[0]:false; echo $content; 有没有更简洁的方法?如果PHP能够自动访问分配的数组,那么它会更短,但我必须重新分配并检查长度…有很

目前我有:

$content =  ($propXml->xpath('//content/section[@name="accommodations"]/content'));
$content = is_array($content) && (count($content)>0)?(string)$content[0]:false;
echo $content;

有没有更简洁的方法?如果PHP能够自动访问分配的数组,那么它会更短,但我必须重新分配并检查长度…

有很多方法可以缩短,但这完全取决于您在脚本中执行的操作。我并不惊讶于这样的操作需要3行代码,但不管怎样,这里有一些想法可以让你的代码更短,有时是以可读性降低为代价的:

使用空

直接回显节点:它会自动转换为字符串

echo (!empty($content)) ? $content[0] : '';
使用array_shift获取数组的第一个元素。注意,它确实修改了数组。如果它是最后一个元素,则可以使用end


+我学会了一个新词:简洁:你能不能把它缩短为$content=isset$content[0]?字符串$content[0]:false;?isset$content[0]在布尔运算中应该失败。@梅德尔:这是一个公平的问题,但与XPath表达式无关。。。求你了,雷塔格。@Alejandro-哇,我从没见过有人投反对票improperly@meder:这不是关于否决权,而是保持标签的相关性。
echo (!empty($content)) ? $content[0] : '';
echo array_shift($propXml->xpath('//content/section[@name="accommodations"]/content'));