创建包含许多对自身的引用的复杂 PHP 对象的克隆的最佳方法是什么,以便新对象的引用指向它自己的方法和属性,而不是原始对象的方法和属性?
我从手册中了解到,该手册创建$new_object = clone $old_object;
了一个浅层副本,将引用保存在它们所在的位置。那么大概 $new_object 的引用将指向旧对象上的方法?
该手册页上的评论表明这$new_object = unserialize(serialize($old_object));
是一种创建深层副本的方法。听起来很有希望,我不确定这种方法对我的情况意味着什么:引用是否被转换为指向克隆,或者是绝对的,或者其他什么,如果确实做了我想要的,是否是最好的方法。
我想知道是否有一种既定的标准方法可以做到这一点。
(注意:有问题的对象是 Drupal Views 对象,但这个问题一般是关于 PHP 对象的:这个对象的唯一重要特征是,它很大,并且包含许多对自身的引用,如果您尝试导航,这些引用会递归整棵树。)