I’m working on an existing code base and got back an object with an attribute that starts with a number, which I can see if I call print_r on the object.
Let’s say it’s $Beeblebrox->2ndhead. When I try to access it like that, I get an error:
Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or ‘{‘ or ‘$’
How can I get that attribute?
What about this :
Actually, you can do this for pretty much any kind of variable — even for ones that are not class properties.
For example, you could think about a variable’s name that contains spaces ; the following syntax will work :
Even if, obviously, you would not be able to do anything like this :
No idea how it’s working internally, though… And after a bit of searching, I cannot find anything about this in the PHP manual.
Only thing I can find about
{}and variables is in here : Variable parsing — but not quite related to the current subject…But here’s an article that shows a couple of other possiblities, and goes farther than the examples I posted here : [**PHP Variable Names: Curly Brace Madness**][2]
And here’s another one that gives some additionnal informations about the way those are parsed : PHP grammar notes