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=343php5复制对象已经是重新实例化一个对象了。
请看例子。程序创建一个aa对象。赋值343然后将这个343打印出来。然后用clone复制一个新对象aa2。用clone复制aa2对象时时我已经将这个id=343清为0并打印出来。但是结果显示还是343。我测试过程序已经调用了__clone方法。不知道是不是PHP5的一个问题。还是我这个方法没有用对。