我想创建一个我的对象的深层副本而不是浅层副本。如果我只是调用clone
,我会收到由循环引用引起的内存不足异常。如何在我的魔法克隆方法中避免循环引用?
public function __clone() {
foreach($this as $key => $val) {
if (is_object($val) || is_array($val) ) {
$this->{$key} = unserialize(serialize($val));
}
}
}