新しいオブジェクトの参照が元のオブジェクトのメソッドとプロパティではなく、独自のメソッドとプロパティを指すように、それ自体への多くの参照を含む複雑なPHPオブジェクトのクローンを作成するための最良の方法は何ですか?
私は、それらがどこにあるかを参照し続ける浅いコピーを作成するマニュアルから理解しています。$new_object = clone $old_object;
では、おそらく$ new_objectの参照は、古いオブジェクトのメソッドを指しているのでしょうか。
そのマニュアルページへのコメントは、それ$new_object = unserialize(serialize($old_object));
がディープコピーを作成する方法であることを示唆しています。有望に聞こえますが、このアプローチが私の場合に何を意味するのか正確にはわかりません。参照がクローンを指すように変換されるのか、絶対になるのか、それとも他の何かになるのか、そして私が望むことを行うのであれば、それが最善の方法であるかどうかです。
これを行うための確立された標準的な方法があるかどうか知りたいのですが。
(注:問題のオブジェクトはDrupal Viewsオブジェクトですが、この質問は一般的なPHPオブジェクトに関するものです。このオブジェクトの唯一の重要な機能は、巨大であり、ナビゲートしようとすると繰り返されるそれ自体への多くの参照が含まれていることです。ツリー全体。)