我想在php中创建动态对象属性作为变量。 例如
$b = '';
if($b != '') $b = "->b";
$a = new stdClass();
$a. $b->c;
我的目标输出
If(b == '') $a->c;
else $a->b->c;
答案 0 :(得分:2)
要使$b->c
生效,您必须使$b
成为stdClass
类的对象。但是由于您使用$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;