2017-01-22 11 views
0

PHPで変数として動的オブジェクトプロパティを作成したいと思います。 は、例えば変数内のPHPオブジェクトプロパティ

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

私の目標出力は$b->cについては

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

答えて

2

はあなたが$bstdClassクラスのオブジェクトを作成する必要があり、働くことです。しかし、$b = "->b";を使って$bを文字列にしたので、前のステートメント$b->cはエラーになります。

回避策は、オブジェクト$aのプロパティとして - bを作成し、このメンバプロパティにクラスstdClassのオブジェクトを割り当てます。次のコードブロックは、この概念をより明確にします。

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

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

後で、このような所望の目標出力を持つことができます

関連する問題