我在 PHP 中对数组和对象有一个奇怪的行为,我不明白。也许你们可以帮助我。
创建一个数组,将其复制到另一个数组,更改第二个数组中的值,一切都如预期的那样:
$array1['john']['name'] = 'foo';
$array2 = $array1;
$array2['john']['name'] = 'bar';
echo $array1['john']['name']; // foo
echo $array2['john']['name']; // bar
现在,如果我使用该数组中的对象执行此操作,则复制数组中的对象包含某种引用?
$array3['john']->name = 'foo';
$array4 = $array3;
$array4['john']->name = 'bar';
echo $array3['john']->name; // bar
echo $array4['john']->name; // bar
我本来期望与第一个示例中的行为相同,但我在 php 文档中找不到任何关于此的内容。有人可以向我解释一下,或者给我发一个链接到记录的地方吗?
谢谢!