问答详情
源自:2-10 PHP类和对象之对象的高级特性

复制方法里面的两句话可有可无啊!!

<?php
class Car {
    public $name = 'car';

    public function __clone() {
//         $obj = new Car();
//         $obj->name = $this->name;
    }
}
$a = new Car();
$a->name = 'new car';
$b = clone $a;
if($a == $b){
    echo "yes!!";
}
echo $b -> name;

输出结果是yes!!new car

说明魔方函数里面的两句话没用啊!!!那这两句话是干嘛的,难道真的可有可无??

提问者:慕用9564390 2017-05-19 20:19

个回答

  • mirai酱
    2017-05-19 23:01:55

    复制函数是在类的对象被复制的时候调用的,这个例子里面调用复制函数的功能是:创建一个Car类,把被复制类a的name属性的值,赋给新复制出来的类b的name属性,如果把

    $obj->name = $this->name;

    改成:

    $obj->name = 'abc';

    的话,复制出来的类的name属性就是abc,而新创建的类的name属性是car。