首頁 > 後端開發 > php教程 > php中的clone對象

php中的clone對象

WBOY
發布: 2016-07-30 13:30:37
原創
1269 人瀏覽過

有的時候我們需要在一個項目裡面,使用兩個或多個一樣的對象,如果你使用“new”關鍵字重新創建對象的話,再賦值上相同的屬性,這樣做比較煩瑣而且也容易出錯,所以要根據一個對象完全克隆出一個一模一樣的對象,是非常有必要的,而且克隆以後,兩個對象互不干擾。

在PHP4我們使用「clone」這個關鍵字來複製物件;

02
01 ?

class

Person03

04//下方是人的成員屬性
    

05    var
var    

06//人的性別
var$sex;  

var;   08
$age //人的年齡

 

    2$
//定義一個建構方法參數為屬性名稱$name、性別$ sex與年齡$age進行賦值 10
=

""

, ,
$sex = ""
$age

=

""$this->name =
) {         
$name

;
 sex=$sex; 13        $this->age=$
14

     
} 15

 //這個人可以說話的方法,說出自己的屬性    function
17
say() 8

        "我的名字叫做:" $this->sex .
echo . $this->name . " 性別:".
" 我的年齡是:"

. $this"
"
->age . ;

199
20

}21
 

, 20);
= new Person("張三" , "男"

$p2

24//使用「clone」克隆新物件p2,和p1物件具有相同的屬性和方法。 25$p2=clone$p2=clone
26 $p2->say();
?>

PHP4定義了一個特殊的方法名稱「__clone()」方法,是在物件複製時自動呼叫的方法,用「__clone()」方法將建立一個與原始物件擁有相同屬性和方法的對象,如果想在克隆後來改變原物件的內容,需要在__clone()中重寫原本的屬性和方法,  「__clone()」方法可以沒有參數,它自動包含$this和$that兩個指針,$this指向;
複本,而$that指向原本

01

02

class
Person

03
{     //下方是人的成員屬性

var
05     
$name

// $ sex
06     var
;  

;  

//人的年齡
08 

//定義一個建構方法參數為屬性姓名$name、性別$sex和年齡$age進行賦值

,
10   ""
$sex

=

"" $this
, $age = "") {)     
->name=

$name

;

12

  ex;

13

        $this ->age=$age     } 15 

16

functionsay() {
17    

     ->sex .
echo"我的名字叫做:" . $ this->name . " 性別:". $this
" 我的年齡是:"

.

$this199
->age . "
"
;

20  

21//對象克隆時自動調用的方法, 如果想在克隆後改變原對象的內容,需要重寫原本__的方法和屬性
    

function(
22     function    

23
 

//$this指的複本p2, 而that則指向本方法1
24         //$this指的複本p2, 而   

25
      "我是假的$that->name";

 ->age = 30;27
    

}
 
29

}

30

 =
31
new

Person(

"張三"
, "男" , 20);

33333333333(
32 $p1;

34 $p2->say();

35個 以上就介紹了php中的clone對象,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。
上例輸出:我的名子叫:張三 性別:男 我的年齡是:20我的名子叫:我是假的張三 性別:男 我的年齡是:30
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板