文章出處
文章列表
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里面改
文章列表
全站熱搜