8

PHP 中执行深度对象复制/克隆的最佳接受方式是什么?

我发现了一些使用序列化的示例,我认为这些示例存在一些问题。

4

1 回答 1

7

如果您可以完全访问您的类,则可以__clone()在所有类中实现,然后使用clone关键字。否则,该clone关键字只会创建最顶层对象的浅表副本,而该对象内的潜在引用将继续指向其原始目标。该__clone()方法还为您提供了更多控制权,但如果您不明确处理它们,则可能会创建带有循环引用的无限循环。

序列化技术通常有效,不会因循环引用而死,但在内存和 CPU 方面更昂贵。

于 2012-07-14T21:09:40.780 回答