如何通过变量名获取对象的子对象属性?
echo $object->zip->name; // this one gives "Budapest"
$field = 'zip->name';
echo $object->$field; // this one gives null
我找到了许多使用$object->{$field}
的解决方案,但它也不起作用
答案 0 :(得分:1)
您需要按->
分解名称,然后使用以下方法。
$object = new StdClass();
$object->zip->name = 'Test';
$field = 'zip->name';
$field_arr = explode('->', $field);
var_dump($object->{$field_arr[0]}->{$field_arr[1]});
<强>输出:强>
string(4) "Test"
希望这会对你有所帮助。