2016-02-26 4 views
2

Как получить свойство дочернего объекта объекта по имени переменной?получить свойство дочернего объекта переменной

echo $object->zip->name; // this one gives "Budapest" 
$field = 'zip->name'; 
echo $object->$field; // this one gives null 

Я нашел много решений с использованием $object->{$field}, но он также делает и не работает

+0

Вы можете добавить объект, который похож на объект? – RamRaider

ответ

1

Вы должны взорвать имя по ->, а затем использовать метод с последующим.

$object = new StdClass(); 
$object->zip->name = 'Test'; 


$field = 'zip->name'; 
$field_arr = explode('->', $field); 
var_dump($object->{$field_arr[0]}->{$field_arr[1]}); 

Выход:

string(4) "Test" 

Надеется, что это поможет.