How to access a member of an stdClass in PHP that

2019-02-12 08:31发布

I have some json object that I decoded, and one of the attributes starts with an "@" and I can't access the element with php because it throws an error.

                    [offers] => stdClass Object
                    (
                        [@attributes] => stdClass Object
                            (
                                [id] => levaka0B8a
                            )
                    )

How would I go about accessing attributes?

4条回答
兄弟一词,经得起流年.
2楼-- · 2019-02-12 08:41

Try to use,

$objSimpleXml->attributes()->id

Sample Code to Refer

<?php
$string = <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
var_dump( $xml );
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?> 
查看更多
Luminary・发光体
3楼-- · 2019-02-12 08:44

You can access it by a string:

echo $obj->{'@attributes'}->id; // levaka0B8a

Or a variable:

$name = '@attributes';
echo $obj->$name->id;

For more information on how variables are defined and used, see the following docs:

  • Variable Basics - Useful for learning what can be accessed as a variable without needing to use strings.
  • Variable Variables - How we used the variable to act as the name for another variable. This can be dangerous so tread carefully
查看更多
来,给爷笑一个
4楼-- · 2019-02-12 08:44

You could do this:

$object->{'@attributes'}
查看更多
Rolldiameter
5楼-- · 2019-02-12 08:47

direct access is below from ircmaxwell or Richard Tuin, however you can decode JSON with second param true and recive array insted what could be an easier to access

查看更多
登录 后发表回答