小編給大家分享一下php中如何實現克隆,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
定義:克隆對象clone
,即通過已有的對象復制一個新的同樣的對象,但是兩者之間并非同一個對象。
1.對象克隆是通過clone關鍵字實現,即:clone
對象
;
<?php class Saler{ //屬性 public $count; private $money; } //實例化 $s1 = new Saler(); $s1->count = 1; //克隆 $s2 = clone $s1; ?>
2.克隆出來的對象與原來對象是兩個內存地址,因此是兩個不同的對象
<?php //接上述代碼 $s2->count = 2; echo $s1->count; //1,沒有變化 ?>
3. 對象在實例化的時候會自動調用存在的構造方法__construct()
,同樣的,在類的內部,PHP允許定義一個__clone()
的方法,在對象被克隆后,新克隆出來的對象會自動調用
<?php class Saler{ //屬性 public $count; private $money; //克隆方法 public function __clone(){ var_dump($this); //編號為2,代表是克隆出來的對象 $this->count++; } } //實例化 $s1 = new Saler(); $s1->count = 1; //克隆 $s2 = clone $s1; ?>
4.如果不允許對象被克隆,可以將__clone()
方法私有化(本質是不允許對象在外部被克?。?/strong>
<?php class Saler{ //屬性 public $count; private $money; //私有化克隆方法 private function __clone(){} } //實例化 $s1 = new Saler(); $s1->count = 1; //克隆 $s2 = clone $s1; //致命錯誤:不允許對象在外部訪問一個私有方法 ?>
以上是“php中如何實現克隆”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。