变量中的PHP对象属性

时间:2017-01-22 18:11:59

标签: php

我想在php中创建动态对象属性作为变量。 例如

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

我的目标输出

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

1 个答案:

答案 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;