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 擴充套件包來對物件進行深拷貝。
點選 連結,免費加入心智極客的知識星球分享群,共同成長。