這篇文章主要介紹“php clone關鍵字的使用方法”,在日常操作中,相信很多人在php clone關鍵字的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php clone關鍵字的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
為保山等地區用戶提供了全套網頁設計制作服務,及保山網站建設行業解決方案。主營業務為成都網站制作、成都網站建設、保山網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
在php中,clone關鍵字可以用于克隆對象,語法格式“克隆對象名稱 = clone 原對象名稱;”;對象克隆成功后,它們中的成員方法、屬性以及值是完全相同的。如果要對克隆后副本的成員屬性重新賦值,可以使用“__clone()”方法。
本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦
PHP clone關鍵字(克隆對象)
PHP 中的對象模型是通過引用來調用對象的,但有時需要建立一個對象的副本,在改變原有對象時不希望影響到對象副本。如果使用new關鍵字重新創建對象,再為屬性賦上相同的值,這樣做會比較煩瑣而且也容易出錯。在 PHP 中可以根據現有的對象克隆出一個完全一樣的對象,克隆以后,原本對象和副本對象是完全獨立互不干擾的。
在 PHP 中可以使用 clone 關鍵字克隆對象,語法格式如下:
克隆對象名稱 = clone 原對象名稱;
因為 clone 的方式實際上是對整個對象的內存區域進行了一次復制并用新的對象變量指向新的內存,因此賦值后的對象和原對象之間是相互獨立的。
對象克隆成功后,它們中的成員方法、屬性以及值是完全相同的。如果要對克隆后副本的成員屬性重新賦值,可以使用 __clone() 方法。
【示例】下面通過一個簡單的示例來演示一下 clone 關鍵字的使用。
<?php class Website{ public $name, $url; public function __construct($name, $url){ $this -> name = $name; $this -> url = $url; } public function output(){ echo $this -> name.','.$this -> url.'<br>'; } } $obj = new Website('創新互聯', 'https://www.php.cn/'); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); echo '<pre>'; var_dump($obj); var_dump($obj2); ?>
運行結果如下:
創新互聯,https://www.php.cn/ 創新互聯,https://www.php.cn/ object(Website)#1 (2) { ["name"]=> string(16) "創新互聯" ["url"]=> string(27) "https://www.php.cn/" } object(Website)#2 (2) { ["name"]=> string(16) "創新互聯" ["url"]=> string(27) "https://www.php.cn/" }
注意:如果使用=將一個對象賦值給一個變量,那么這時得到的將是一個對象的引用,通過這個變量更改屬性的值將會影響原來的對象。
__clone() 魔術方法
__clone() 方法不能夠直接被調用,只有當通過 clone 關鍵字克隆一個對象時才可以使用該對象調用 __clone() 方法。當創建對象的副本時,PHP 會檢查 __clone() 方法是否存在。如果不存在,那么它就會調用默認的 __clone() 方法,復制對象的所有屬性。如果 __clone() 方法已經定義過,那么 __clone() 方法就會負責設置新對象的屬性。所以在 __clone() 方法中,只需要覆蓋那些需要更改的屬性就可以了。
__clone() 方法不需要任何參數,下面通過一個示例來演示一下:
<?php class Website{ public $name, $url; public function __construct($name, $url){ $this -> name = $name; $this -> url = $url; } public function output(){ echo $this -> name.','.$this -> url.'<br>'; } public function __clone(){ $this -> name = 'PHP教程'; $this -> url = 'https://www.php.cn/'; } } $obj = new Website('創新互聯', 'https://www.php.cn/'); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); ?>
運行結果如下:
創新互聯,https://www.php.cn/ PHP教程,https://www.php.cn/
提示:如果在類中設置一個空的,訪問權限為 private(私有的)的 __clone() 方法的話,可以起到禁止克隆的作用。
到此,關于“php clone關鍵字的使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!
標題名稱:phpclone關鍵字的使用方法
轉載注明:http://vcdvsql.cn/article38/pehdpp.html
成都網站建設公司_創新互聯,為您提供網站維護、定制網站、網站排名、定制開發、網頁設計公司、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯