这不仅难以解释,而且很棘手:
我正在尝试访问和替换
$myObject->customField[0] = "some value";
但如果我这样做
$str = "customField";
$myObject->$str[0] = "some value";
这不起作用,如果我这样做
$str = "customField";
$obj = $myObject->$str;
$obj[0];
这也行不通。如果我不动态地执行此操作,我可以更改值,但我必须循环很多,因此动态操作将非常有用。
结果花括号做了伎俩。即
$str = "customField";
$myObject->{$str}[0] = "some value";
答案 0 :(得分:0)
为什么要拥有动态属性名称?最好的答案是:不要这样做。请考虑使用关联数组:
$myObject->customFields = array();
$myObject->customFields[$str] = "some value";