PHP 物件導向 - 物件的淺拷貝與深拷貝

心智極客發表於2019-11-20

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 擴充套件包來對物件進行深拷貝。

點選 連結,免費加入心智極客的知識星球分享群,共同成長。

相關文章