2017-02-16 7 views
1

Я ищу доступ к свойству объекта свойства объекта, как это:PHP - Доступ к свойству объекта с динамической переменной

$property = "user->name"; 
echo $object->$property; // ??, I want $object->user->name 

Я пробовал много вещей, но ни один не кажется работа.

Благодаря

+1

Что? Можете ли вы кратко объяснить .. показать свой объект –

+0

Возможный дубликат [Динамический доступ к вложенному объекту] (http://stackoverflow.com/questions/7037240/dynamically-access-nested-object) –

+0

Я не думаю, что это дубликат , Я не могу использовать XPath, потому что это не XML, и я не могу получить доступ к тому, что хочу. Чтобы ответить на M A SIDDIQUI, мне нужно сохранить свойство объекта, как показано (свойство $), и повторно использовать эту переменную в объекте $ object. – Treast

ответ

0

Я не думаю, что вы можете сделать несколько разыменовывает таким образом. Вы будете искать переменную в $object под названием user->name. Вместо этого, вы можете разделить на ->, а затем сделать несколько звонков, что-то вроде:

$test = 'user->name'; 
$var = $object; 
foreach(explode('->', $test) as $item) { 
    $val = $val->$item; 
} 
echo $val; # This is the result of $object->user->name 

Sample Code

0

Попробуйте следующее:

$property = "user->name"; 

$prop_arr = explode('->',$property); 
foreach ($prop_arr as $prop){ 
    $obj = $obj->{$prop}; 
} 
echo $obj; 
0

Если разделить переменную в 2 следующим образом:

list($property1, $property2) = explode('->', $property); 

    echo $object->{$property1}->{$property2};