PHP 物件克隆 clone 關鍵字與 __clone() 方法

巴扎黑
發布: 2016-11-11 17:56:27
原創
1113 人瀏覽過


PHP 物件複製 clone 關鍵字與 __clone() 方法

clone 關鍵字用來複製一個完全一樣的對象,__clone() 方法來重寫原本的屬性和方法。

物件克隆

有的時候我們需要在一個專案裡面使用兩個或多個一樣的對象,如果使用 new 關鍵字重新建立對象,再賦值上相同的屬性,這樣做比較煩瑣而且也容易出錯。 PHP 提供了物件克隆功能,可以根據一個物件完全克隆出一個一模一樣的對象,而且複製以後,兩個物件互不干擾。

使用關鍵字 clone 來複製物件。語法:

$object2 = clone $object;

例子:

name=$name; $this->age=$age; } function say() { echo "我的名字叫:".$this->name."
"; echo "我的年龄是:".$this->age; } } $p1 = new Person("张三", 20); $p2 = clone $p1; $p2->say(); ?>
登入後複製

運行例子,輸出:

我的名字叫:張三

我的年齡是:20

我的名字叫:張三

我的年齡是:20

我的名字叫:張三

我的年齡是:20

我的名字叫:張三

我的年齡是:20

我的名字是

複製後改變原物件的內容,需要在類別中加入一個特殊的__clone() 方法來重寫原本的屬性和方法。 __clone() 方法只會在物件被複製的時候自動呼叫。

例子:

name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name; echo " 我的年龄是:".$this->age."
"; } function __clone() { $this->name = "我是假的".$this->name; $this->age = 30; } } $p1 = new Person("张三", 20); $p1->say(); $p2 = clone $p1; $p2->say(); ?>
登入後複製

運行例子,輸出:我的名字叫:張三 我的年齡是:20我的名字叫:我是假的張三 我的年齡是:30我的名字叫:我是假的張三 我的年齡是:30我的名字是:我是假的張三
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!