0

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

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

Person 是一个 stdClass 对象:

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

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

上面的例子不完全是我的情况,我只是创建它来演示我的问题。

谢谢!

4

2 回答 2

1

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

if(property_exists($person, $status)) {
  // Do something
}
于 2012-02-02T12:29:29.520 回答
1

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

$person_array = get_object_vars($person_object);
if ($person_array[$status]) {
    // do this
} 
于 2013-03-09T16:30:36.373 回答