Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to access a member of an stdClass in PHP that starts with an @

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?

like image 219
Nikhil Avatar asked Jan 11 '11 17:01

Nikhil


1 Answers

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
like image 106
ircmaxell Avatar answered Oct 19 '22 23:10

ircmaxell