Доступ к переменным переменным с помощью объекта
Я действительно не знаю, как описать эту проблему, поэтому извините, если название немного неясно.
Я получил объект с полями массива. Я получил имя этих полей, хранящихся в переменной, и я хочу получить элемент в одном из этих полей массива. например
$field_name = 'array_field';
$object = new stdClass();
$object->array_field= array('this', 'is', 'an', 'array);
Я знаю, что могу получить доступ к массиву с $object->$field_name
, но теперь я хочу получить доступ к значению по ключу в массиве при обращении к нему с помощью $field_name
переменная. например (это, очевидно, не работает) $object->$field_name[0]
2 ответа
Я думаю, вы должны использовать что-то вроде следующего:
$object->{$field_name}[0]
Это подробно описано в разделе "Переменные переменные" руководства по PHP: http://www.php.net/manual/en/language.variables.variable.php
Кстати, по моему опыту, такой способ манипулирования полями может привести к незаметности кода - я бы порекомендовал использовать ассоциативные массивы, если это возможно.