php对象:通过计算名称获取属性值

gro*_*ter 4 php attributes get object

如果我在运行时计算名称,如何按名称访问对象的属性?

例如.我遍历键并想要获取属性的每个值"field_" . $key.

在python中有getattribute(myobject, attrname).

当然,它有效,eval("$val=$myobject->".$myattr.";"); 但IMO这很难看 - 有更清洁的方法吗?

Ign*_*ams 8

$myobject->{'field_'.$key}
Run Code Online (Sandbox Code Playgroud)

  • +1 - 只要你希望PHP在表达式的其余部分之前评估它们的内容,你就可以使用花括号`{}` (2认同)

Nic*_*ini 8

请记住,PHP的一个非常强大的功能是它的变量变量

您可以使用

$attr = 'field' . $key;
$myobject->$attr;
Run Code Online (Sandbox Code Playgroud)

或者更简洁,使用卷曲括号

$myobject->{'field_'.$key};
Run Code Online (Sandbox Code Playgroud)