PHP 面向对象 - 对象的浅拷贝与深拷贝
PHP 的对象克隆使用的浅拷贝(shallow copy)
示例
class Bar {
public $name;
}
class Foo
{
public $bar;
function __construct()
{
$this->bar = new Bar();
}
}
$foo = new Foo();
$copyFoo = clone $foo;
var_dump($foo->bar === $copyFoo->bar); // bool(true)
该例子中,克隆的实例与原有的实例的 bar
成员都指向同一个实例,因此,需要谨慎使用对象的克隆功能。可以使用 myclabs/DeepCopy 扩展包来对对象进行深拷贝。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: