2017-02-16 96 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,我需要存儲一個對象的屬性($ property),並在$ 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};