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

关于对象克隆

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

正在回答

1 回答

题中代码克隆给$b的是$a。

如果在克隆时要改变原对象的属性,可以通过‘$this->属性名’重写。

如将题中__clone()改写为:

function __clone(){

    $this-name = "Clone car";

}

将输出: Clone car

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

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181823    人
  • 解答问题       2577    个

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

进入课程

关于对象克隆

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