我在PHP中使用數組和對象得到了一個奇怪的行爲,我不明白。也許你們可以幫助我。陣列副本中的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文檔中找不到任何關於此的內容。有人可以向我解釋或向我發送一個鏈接,告訴我這是記錄在哪裏?
謝謝!
'當分配一個類的已經創建的實例到一個新的變量,新的變量將訪問相同的實例作爲已分配的對象。將實例傳遞給函數時,此行爲是相同的。可以通過克隆已經創建的對象的副本。 '(http://php.net/manual/en/language.oop5.basic.php) –