Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access Variable variables with an object

I don't really know how to decribe this problem, so I'm sorry if the title is a bit unclear.

I got an object with array fields. I got the name of these fields stored in a variable and I want to reach an element in one of those array fields. e.g.

$field_name = 'array_field';

$object = new stdClass();
$object->array_field= array('this', 'is', 'an', 'array);

I know i can access the array with $object->$field_name, but now I want to access a value by key in the array while accessing it with the $field_name variable. e.g.(that obviously does not work) $object->$field_name[0]

like image 371
Barthje Avatar asked Dec 04 '22 10:12

Barthje


2 Answers

I think, you should use something like the following:

$object->{$field_name}[0]

It's described in details in "Variable variables" section of PHP manual: http://www.php.net/manual/en/language.variables.variable.php

BTW, according to my experience, such way of fields manipulation may lead to code obscurity - I'd recommend to use associative arrays, if possible.

like image 188
Kel Avatar answered Dec 19 '22 13:12

Kel


Try this:

$object->{$field_name}[0]
like image 23
mellowsoon Avatar answered Dec 19 '22 14:12

mellowsoon