小編給大家分享一下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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。