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

来源:2-10 PHP类和对象之对象的高级特性

慕用9564390

2017-05-19 20:19

<?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

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

写回答 关注

1回答

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

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

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

    改成:

    $obj->name = 'abc';

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

    mirai酱

    应该改成$this->name = 'abc';

    2017-05-19 23:16:14

    共 2 条回复 >

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181859 学习 · 2577 问题

查看课程

相似问题