慕娘4227678
2015-03-24 00:24
<?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
题中代码克隆给$b的是$a。
如果在克隆时要改变原对象的属性,可以通过‘$this->属性名’重写。
如将题中__clone()改写为:
function __clone(){
$this-name = "Clone car";
}
将输出: Clone car
PHP进阶篇
181835 学习 · 2577 问题
相似问题