在PHP中为数组分配对象变量

在PHP中为数组分配对象变量,php,Php,我想将我的对象变量预先定义到数组中。之后,我需要从该数组中一次访问一个元素,并为其赋值。像这样: $obj = new StdClass(); $arr = ["$obj->item1"]; $arr[0] = "apple"; print_r($obj); // expecting to see $obj->item1 = apple 我知道上面我做错了什么,但我不知道是什么原因。解决了。多亏了Tim Burton的提示 $arr = [&

我想将我的对象变量预先定义到数组中。之后,我需要从该数组中一次访问一个元素,并为其赋值。像这样:

$obj = new StdClass();
$arr = ["$obj->item1"];
$arr[0] = "apple";
print_r($obj); // expecting to see $obj->item1 = apple

我知道上面我做错了什么,但我不知道是什么原因。

解决了。多亏了Tim Burton的提示

$arr = [&$obj->item1];

您正在覆盖
$arr[0]
,而不是分配$obj的属性。可能让你困惑的是,对象是通过引用传递的;但按值排列。如果只将对象分配给
$arr[0]
,则可能可以在代码中的其他位置设置
$obj->item1
,然后引用
$arr[0]->item1