關于對象克隆
<?php
class Car {
??? public $name = 'car';
?? ?
??? public function __clone() {
??????? $obj = new Car();
??????? //$obj->name = $this->name;
??????? $obj->name='test';
??? }
}
$a = new Car();
$a->name = 'new car';
$b = clone $a;
echo $b->name;
?>
我的問題是$b = clone $a;此時$b是指由$a調用__clone生成的對象還是?如果是那么echo $b->name;應該打印的值是‘test’,而實際結果確是 new car
2015-03-25
題中代碼克隆給$b的是$a。
如果在克隆時要改變原對象的屬性,可以通過‘$this->屬性名’重寫。
如將題中__clone()改寫為:
function __clone(){
????$this-name = "Clone car";
}
將輸出:?Clone car