2017-01-22 152 views
0

我想在php中創建動態對象屬性作爲變量。 例如變量中的PHP對象屬性

$b = ''; 
if($b != '') $b = "->b"; 
$a = new stdClass(); 
$a. $b->c; 

我的目標輸出

If(b == '') $a->c; 
else $a->b->c; 

回答

2

對於$b->c工作,你必須做出$bstdClass類的一個對象。但是由於您使用$b = "->b";作爲字符串$b,前面的語句$b->c會引發錯誤。

因此,解決方法是 - 將b作爲對象$a的屬性,並將類stdClass的對象分配給此成員屬性。以下代碼塊將使這個概念更清晰。

$b = ''; 
$a = new stdClass(); 
if($b != ''){ 
    $a->b = new stdClass(); 
    $a->b->c = 'something'; 
}else{ 
    $a->c = 'something else'; 
} 

後來,你可以期望的目標輸出是這樣的:

if($b == '') echo $a->c; 
else echo $a->b->c;