PHP 面向对象 - 对象的浅拷贝与深拷贝

PHP 的对象克隆使用的浅拷贝(shallow copy)

PHP 面向对象 - 对象的浅拷贝与深拷贝

示例

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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!