混入狼坑的哈士奇
有个问题:如果在克隆之前对类的属性进行改变的话 那么克隆后的属性值就是改变后的值 那么new一个新实例的时候 得到的是未改变的值 也就是说 克隆和新实例不一定是完全一样的。 class A { public $name='aaa'; } $obj1=new A(); $obj1->name='bbb'; $obj2=clone $obj1; //克隆 name值'bbb'
6年前 添加回复 3
你可以用new $obj1()创建就可以一样了
好像评论行数不够 续写一下 echo $obj2->name; //输出 bbb $obj3=new A(); //新实例 echo $obj3->name; //输出 aaa
6年前 添加回复 2
范经理
没毛病,把克隆前的变量和改变后的变量打印出来就看到了,改变后当然也改变,但是定义是不变的,值传递。
6年前 添加回复 1
DannyH0128
内容讲得不错,学习了
5年前 添加回复 0
JELLY——栋
朱老师讲课风格好,干净利索~
二十三度
终于把好多不明白的弄懂了
手机用户314448368
喜喜
慢也是一种节奏
不错
Exception
好
N
那你
菜菜12
老师说的是克隆的方法跟new一个对象的方法一样:像变量的值传递一样创建对象。
6年前 添加回复 0
最新
我要提问
发布笔记
看过该课程的同学也在学
混入狼坑的哈士奇
有个问题:如果在克隆之前对类的属性进行改变的话 那么克隆后的属性值就是改变后的值 那么new一个新实例的时候 得到的是未改变的值 也就是说 克隆和新实例不一定是完全一样的。 class A { public $name='aaa'; } $obj1=new A(); $obj1->name='bbb'; $obj2=clone $obj1; //克隆 name值'bbb'
6年前 添加回复 3