【问题标题】:How do I access a PHP object attribute having a @ sign? [duplicate]如何访问具有 @ 符号的 PHP 对象属性? [复制]
【发布时间】:2013-04-02 17:29:41
【问题描述】:

我的问题和这个类似

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) {}

虽然我希望有一个向量。

有什么想法吗?谢谢

【问题讨论】:

  • 您自己发布了副本。解决方法是一样的。

标签: php variables special-characters


【解决方案1】:

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

但是,您想使用 SimpleXMLElement 获得xml element's attribute - 这样做是这样的:

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

更多用法:

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

【讨论】:

    【解决方案2】:

    它是attributes,更多信息请参见SimpleXMLElement::attributes

    例子

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

    【讨论】:

    • 只有第二个答案对我有用。谢谢大家。
    猜你喜欢
    • 2011-01-06
    • 1970-01-01
    • 2014-10-02
    • 2021-04-30
    • 2012-08-10
    • 2016-10-31
    • 2019-11-24
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多