2017-01-22 90 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;