为动态对象的属性赋值

时间:2015-04-15 23:42:04

标签: php

这不仅难以解释,而且很棘手:

我正在尝试访问和替换

$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";

1 个答案:

答案 0 :(得分:0)

为什么要拥有动态属性名称?最好的答案是:不要这样做。请考虑使用关联数组:

$myObject->customFields = array();

$myObject->customFields[$str] = "some value";