Return PHP object by index number (not name)

Normally, PHP variable names can't start with a digit. You can't access $data as an array either as stdClass does not implement ArrayAccess — it's just a normal base class.

However, in cases like this you can try accessing the object attribute by its numeric name like so:

echo $data->{'0'}->UserName;

The only reason I can think of why Spudley's answer would cause an error is because you're running PHP 4, which doesn't support using foreach to iterate objects.


BoltClock's suggestion to use "$data->{'0'}->UserName" apparently no longer works with PHP 5.

I had the same problem and I found that current() will work to get that numbered class element like this...

echo current($data)->UserName;

Or if that doesn't work (depending on the object) you may need to do another current() call like this:

echo current(current($data))->UserName;