PHPで配列とオブジェクトを使用した奇妙な動作が発生しましたが、理解できません。多分あなたたちはそれで私を助けることができます。
配列を作成し、それを別の配列にコピーし、2番目の配列の値を変更すると、すべてが期待どおりになります。
$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ドキュメントでこれについて何も見つかりません。誰かが私にそれを説明したり、これが文書化されている場所へのリンクを送ったりできますか?
ありがとう!