如何访问具有@符号的PHP对象属性?

时间:2013-04-02 17:29:42

标签: php variables special-characters

我的问题与此问题类似

How do I access a PHP object attribute having a dollar sign?

但我有一个@(at)符号而不是一美元。

对象是:

object(SimpleXMLElement)#8 (1) { 
  ["@attributes"]=> array(3) { 
  ["type"]=> string(9) "image/png" 
  ["href"]=> string(62) "http://someurl.com/images/193/image_normal.jpg" 
  ["rel"]=> string(5) "image" 
  } 
}

我必须访问@attributes变量(真的是href组件),但PHP不允许这样的语法:

$object->@attributes

根据引用的资源,我尝试了这种方式:

$object->{'@attributes'};

$myvar = '@attributes';
$object->$myvar;

但这两种形式都不会导致访问变量。它打印:

object(SimpleXMLElement)#8 (0) {}

虽然我期待一个矢量。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:1)

在正常情况下$object->{'@attributeName'} - 提出您的问题。

但是,你希望得到一个xml element's attribute,使用SimpleXMLElement - 这样做:

$attributeValue = (string) $xmlElement['attributeName'];

更多用法:

http://www.php.net/manual/en/simplexml.examples-basic.php

答案 1 :(得分:0)

它是attributes,请参阅SimpleXMLElement::attributes了解更多信息

示例

foreach($xml->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}