为了账号安全,请及时绑定邮箱和手机立即绑定

关于clone关键字

<?php

class Car {

    public $name = 'car';

    public $speed = 100;

    public function __clone() {

        $obj = new Car();

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

    }

}

$a = new Car();

var_dump($a);

$b = clone $a;

var_dump($b)

为什么输出的是:

object(Car)#1 (2) {
["name"]=>
string(3) "car"
["speed"]=>
int(100)
}
object(Car)#2 (2) {
["name"]=>
string(3) "car"
["speed"]=>
int(100)
}

即使注释掉__clone()方法也是上述输出呢?

正在回答

3 回答

__clone()方法里的两条语句是 clone 本来就有的,所以不定义__clone() 结果也是一样的。建议 改成 echo something,以免大家误会

1 回复 有任何疑惑可以回复我~
#1

BayLite 提问者

非常感谢!
2015-12-06 回复 有任何疑惑可以回复我~

clone关键字应该是调用php内置clone方法,讲解的代码只是把那个方法重写了吧。只是为了方便我们看明白。

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于clone关键字

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信