PHP深层对象复制/克隆

PHP深层对象复制/克隆,php,Php,PHP中执行deep对象复制/克隆的最佳方式是什么 我发现了一些使用serialize的示例,我认为这些示例存在一些问题。如果您拥有对类的完全访问权限,则可以在所有类中实现\u clone(),然后使用clone关键字。否则,clone关键字只会创建最顶层对象的浅拷贝,而此对象中的潜在引用将继续指向其原始目标。\uuu clone()方法也提供了更多的控制,但是如果不明确地处理循环引用,可能会创建无限循环 序列化技术通常是有效的,不会在循环引用中消亡,但在内存和CPU方面更昂贵。我本想让您看看文

PHP中执行deep对象复制/克隆的最佳方式是什么


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

如果您拥有对类的完全访问权限,则可以在所有类中实现
\u clone()
,然后使用
clone
关键字。否则,
clone
关键字只会创建最顶层对象的浅拷贝,而此对象中的潜在引用将继续指向其原始目标。
\uuu clone()
方法也提供了更多的控制,但是如果不明确地处理循环引用,可能会创建无限循环


序列化技术通常是有效的,不会在循环引用中消亡,但在内存和CPU方面更昂贵。

我本想让您看看文档,但后来我意识到,我甚至不知道克隆何时“深入”。我不太确定您在问什么。你提到克隆,但第二句提到序列化。你到底对什么感兴趣?序列化克隆对象的最佳方法是什么?您已经阅读了吗?这里有一个更好的问题:您为什么认为需要它?@tereško-除其他外,我有一个对象,其中一个属性包含一个对象数组。好的,谢谢,我在几篇博客上读到,序列化技术可能存在问题,即它确实涉及一些边缘案例(对于我的特定用例来说并不重要,尽管它让我对是否有“最佳方法”感兴趣),因为序列化基本上只是一个技巧,
\uu clone()
方法可以被认为是最重要的“正确的方法”来做它。但是取决于用例,如果有必要以正确的方法做它;-)太好了,没有考虑使用序列化技巧。问题已经解决了,这很愚蠢。