php類的復制(克隆)


對象也能被“克隆”

在php5中,對象的傳遞方式默認為引用傳遞,如果我們想要在內存中生成兩個一樣的對象或者創建一個對象的副本,這時可以使用“克隆”。

通過 clone 克隆一個對象

對象的復制是通過關鍵字 clone 來實現的。用 clone 克隆出來的對象與原對象沒有任何關系,它是把原來的對象從當前的位置重新復制了一份,也就是相當於在內存中新開辟了一塊空間。通過關鍵字 clone 可以克隆一個對象,語法格式如下:

$克隆對象名稱= clone  $原對象名稱;

__clone()方法 

對象的__clone()方法不能夠直接被調用,只有當通過關鍵字 clone 克隆一個對象時才可以使用該對象調用__clone()方法。當創建對象的一個副本時,php5將會檢查__clone()方法是否存在。如果不存在,那 么它就會調用默認的__clone()方法,復制對象的所有屬性。如果__clone方法已經定義過,那么__clone()方法就會負責設置新對象的屬 性。所以在__clone()方法中,只需要覆蓋那些需要更改的屬性就可以了。例子如下:

class  MyClone{
     public  function  __clone(){
         echo "對象已被克隆" ;
     }
}
$objectA = new  MyClone();
$objectB = $objectA ;   //不調用__clone()方法,沒任何輸出
$objectC = clone  $objectA ;   //調用__clone()方法

該程序執行結果為:對象已被克隆


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM