php5 中__clone方法问题。

jasonxiaoma 2010-06-16 08:59:54

class aa{
private $name;
private $age;
private $id;

function __construct($name, $age){
$this->name = $name;
$this->age = $age;
}

function setid($id){
$this->id = $id;
}
function __clone(){
$thid->id = 0;
}
function getname(){
return $this->id;
}
}
$aa = new aa("aa",44);
$aa->setid(343);
echo $aa->getname()."<br /><br /><br /><br /><br />";

$aa2 = clone $aa;
echo "aa=".$aa->getname()."<br />";
echo "aa2=".$aa2->getname()."<br />";

显示结果:
343


aa=343
aa2=343



php5复制对象已经是重新实例化一个对象了。
请看例子。程序创建一个aa对象。赋值343然后将这个343打印出来。然后用clone复制一个新对象aa2。用clone复制aa2对象时时我已经将这个id=343清为0并打印出来。但是结果显示还是343。我测试过程序已经调用了__clone方法。

不知道是不是PHP5的一个问题。还是我这个方法没有用对。
...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
freedom_gooboy 2010-06-16
  • 打赏
  • 举报
回复
结果是
343




aa=343
aa2=0
freedom_gooboy 2010-06-16
  • 打赏
  • 举报
回复
function __clone(){
$thid->id = 0; //$this->id=0; 写错了
}


21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧