您的位置:首页 > 其它

__clone()方法

2015-07-04 16:10 316 查看
<?php
class NbaPlayer{
public $name;
}
$james = new NbaPlayer();
$james->name = 'James';
echo $james->name."<br/>";

$james2 = clone $james;
echo "before set up James2's:".$james2->name."<br/>";

$james2->name = 'James2';

echo "James's :".$james->name."<br/>";
echo "James2's:".$james2->name."<br/>";


输出:

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


使用clone后,james2的所有数据都是和james是一样的

这时,在 NbaPlayer 中增加

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


其它代码不变,则输出为:

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


也就是把clone后james2的name的初始值改为TBD,在复制时不想把原有数据的部分都复制过去,就在__clone里面改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: