php-克隆对象

在创建对象的时候(使用new关键字),返回的值是一个指向对象的句柄,或者换言之,就是对象的ID号。这跟PHP4是不一样的,在PHP4中返回的值就是对象本身。而调用方法或者访问属性的语法被改变了,只是对象在复制的时候意义被更改了。

class MyClass{

  public $var=1;

}

$obj1=new MyClass();

$obj2=$obj1;

$obj2->var=2;

print $obj1->var;

PHP4中,结果是1.

PHP5中,结果是2.

当需要拷贝对象的时候,用语言命令clone。这个内置的的操作符会自动创建一个新的对象实例,并且附带原对象的所有属性,对象的属性的值也会被原样复制。另外,还可以定义一个_clone()方法来执行任何最后的操作,它在新创建的对象中被调用。

如果上面的$obj2=clone $obj1;

那么,运行结果就是1.

原文地址:https://www.cnblogs.com/nana135/p/6418695.html