文章出處

 1 <?php
 2 class NbaPlayer{
 3     public $name;
 4 }
 5 $james = new NbaPlayer();
 6 $james->name = 'James';
 7 echo $james->name."<br/>";
 8 
 9 $james2 = clone $james;
10 echo "before set up James2's:".$james2->name."<br/>";
11 
12 $james2->name = 'James2';
13 
14 echo "James's :".$james->name."<br/>";
15 echo "James2's:".$james2->name."<br/>";

輸出:

James
before set up James2's:James
James's :James
James2's:James2

 

使用clone后,james2的所有數據都是和james是一樣的

這時,在 NbaPlayer 中增加

1 function __clone() {
2         $this->name="TBD";
3     }

其它代碼不變,則輸出為:

James
before set up James2's:TBD
James's :James
James2's:James2

也就是把clone后james2的name的初始值改為TBD,在復制時不想把原有數據的部分都復制過去,就在__clone里面改


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()