PHP中new出来的对象和 clone复制出来的对象

来源:互联网 发布:省流量的软件 编辑:程序博客网 时间:2024/05/18 18:02
</pre><pre name="code" class="php">class Person{var $name;function __construct(){# code...$this->name="小aa明".'<br  />';}function say(){echo $this->name."在说话";}}

这是一个简单的类

$new  = new Person();$new -> say();$clone = clone $new ;$clone -> say();

我们分别new一个对象和clone克隆一个对象

网页中输出的结果是:小aa明在说话

                                        小aa明在说话

看起来完全一样  似乎并没有什么区别

接着再写代码


$new  -> name  ="校长";$new -> say();$clone -> say();$new ->say();

我们给Person的$name重新赋值

那么最开始克隆的对象的$name会不会变呢?

输出结果为:小aa明在说话
                        小aa明在说话(这两句是最开始的输出)
                        校长在说话
                        小aa明在说话(这一句是改变Person的$name后克隆对象的say方法并没有跟着改变而改变)
                        校长在说话


new出来的东西是完全没关系的,完全是两个对象

克隆new出来的东西,它们只是名字不同,但是如果一个改变,另一个并不会跟着改变,克隆后原本和副本完全独立,互不干扰


0 0
原创粉丝点击