可能重複:
In PHP can someone explain cloning vs pointer reference?如果對象通過別名傳遞,您何時通過引用傳遞?
根據http://php.net/manual/en/language.oop5.references.php
一個經常被提到的PHP 5 OOP的關鍵點之一是「對象是通過傳遞默認引用「。這並不完全正確。本節使用一些例子來整理這個一般思想。
PHP引用是一個別名,它允許兩個不同的變量寫入相同的值。從PHP 5開始,對象變量不再包含對象本身的值。它只包含一個對象標識符,它允許對象訪問器找到實際的對象。當對象是由參數,返回或分配給另一個變量發送時,不同的變量不是別名:其所持有的標識符,它指向相同的對象的副本。
如果對象通過別名或處理程序傳遞,那麼在什麼情況下你真的想通過引用傳遞?
myFunc($obj); // Pass by alias/handler
myFunc(& $obj); // Pass by reference (when would you do this?)
myFunc(clone $obj); // Create a new object
這些每種情況的不同用例有哪些?
我認爲這個講座涵蓋了以下主題:http://www.youtube.com/watch?v = bxxIXPc9IR8(其中包括) – 2012-07-19 15:13:24
請注意,從至少5.3開始,呼叫時傳遞引用已被棄用,如果不是更早。該函數聲明瞭ARG遊戲,預計將引用,並調用者沒有指定,他們是引用 - 和,其實不應該。 – cHao 2012-07-19 15:16:39