通过变量引用对象,例如:$ object-> $ ref

时间:2012-02-02 12:26:19

标签: php stdclass

我想动态引用对象中的属性,因为并非所有对象都具有相同的属性,例如:

if ($person->$status) {
    //do this
}

Person是stdClass对象:

stdClass Object
                    (
                        [name] => name
                        [silver] => 214321
                        [gold] => 334532
                    )

上面示例中的变量$ status可以是字符串值“silver”或“gold”或任何其他值,我想检查对象是否具有该值的属性。

上面的例子并不完全是我的情况,我只是创建它以证明我的问题。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用property_exists方法检查对象中是否存在属性:

if(property_exists($person, $status)) {
  // Do something
}

答案 1 :(得分:1)

您可以使用get_object_vars获取对象可访问属性的数组:

$person_array = get_object_vars($person_object);
if ($person_array[$status]) {
    // do this
}