数组Simplexml以不同的方式访问属性

时间:2013-03-26 07:05:58

标签: php arrays attributes simplexml

很抱歉,如果我在这里错过了答案,但我在所有属性问题之间找不到它。

我使用SimpleXML解析rss-feed并且在dev(xampp)中运行良好

的var_dump:

object(SimpleXMLElement)[672]
  public '@attributes' => 
    array (size=2)
      'name' => string 'A name' (length=11)
      'description' => string 'A very long desc' (length=12)

这对我来说非常适合开发:

$desc = (string) $xml->attributes()['description'];

...但不在我的网络服务器上。我找到了一个解决方案,适用于两种情况:

$v = 'description';
$desc = (string) $xml->attributes()->$v;

有人可以告诉我原因。这个版本有关系吗? 再次:对不起,之前已经问过这个问题。

编辑: 我刚刚发现,这也有效:

$a = $xml->attributes();
$desc = (string) $a['description'];

同样的问题: - )

1 个答案:

答案 0 :(得分:2)

这与SimpleXML没有直接关系 - 只有从PHP版本5.4开始,才能使用functioncall()['key']访问函数返回的数组内的元素。

http://www.php.net/manual/en/language.types.array.php

  

“从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组解除引用。之前只能使用临时变量。“