果然在物健導向的底還不夠深,趁這個機會將觀念一掃而空。
PHP部分:
在 PHP ,大部分時候寫 = 代表複製過去的是變數裡面的 value, =& 代表複製過去的是變數(參數傳值)。但是當變數是物件時當 = 的右邊是物件時,複製過去的會是 reference (參數傳址)。如果要複製物件裡面的 value 到一個新的物件,必須用關鍵字 clone,如下:
<?php
$obj2 = clone $obj;
?>
Javascript部分:
在Javascript部分,陣列和物件都是reference (參數傳址) ,而其他變數則是(參數傳值),Javascript複製物件的方法請參考http://www.josephjiang.com/presentation/OOJS/object-oriented-paradigms.html。
PS:PHP的陣列是(參數傳值)。