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里面改

相关文章:

  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2021-05-24
  • 2022-02-05
  • 2021-12-21
  • 2021-11-26
猜你喜欢
  • 2021-12-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-25
  • 2022-02-14
  • 2021-07-28
相关资源
相似解决方案