致命错误:嵌套级别太深 - 递归依赖关系?
我有一个复杂的嵌套对象层次结构,所有子对象(在父类中存储了一个对象数组)都包含一个链接到其父对象的属性:相当简单明了,没有真正的问题。如果我对层次结构中的任何对象进行var_dump,我将在转储中获得递归引用,正如我所期望的那样。
FIRSTGEN
_children array of objects of type SECONDGEN
SECONDGEN #1
_parent object of type FIRSTGEN
_children array of objects of type THIRDGEN
THIRDGEN #1
_parent object of type SECONDGEN
THIRDGEN #2
_parent object of type SECONDGEN
SECONDGEN #2
_parent object of type FIRSTGEN
_children array of objects of type THIRDGEN
THIRDGEN #3
_parent object of type SECONDGEN
我最近向该层次结构添加了一些新元素,但它们不遵循完全相同的模式。它们存储在顶级父级的对象数组中,但包含一个属性,这些对象不是链接到它们的父级,而是链接到同级。当我现在做一个var_dump时,我得到一个“致命错误:嵌套级别太深 - 递归依赖关系?
FIRSTGEN
_children_1 array of objects of type SECONDGEN_1
SECONDGEN_1 #1
_parent object of type FIRSTGEN
_children array of objects of type THIRDGEN
THIRDGEN #1
_parent object of type SECONDGEN_1
THIRDGEN #2
_parent object of type SECONDGEN_1
SECONDGEN_1 #2
_parent object of type FIRSTGEN
_children array of objects of type THIRDGEN
THIRDGEN #3
_parent object of type SECONDGEN_1
_children_2 array of objects of type SECONDGEN_2
SECONDGEN_2 #1
_parent object of type SECONDGEN_1
代码中的其他所有内容都正常工作,除了该var_dump()。我尝试创建一个更简单的示例来演示问题,以便在提出此问题时可以提供示例;但是无法在简短的测试中复制它,只能在我更复杂的代码中复制它。
我知道解决方案是重构关系,以便我的_children_2 SECONDGEN_2对象数组保存在适当的SECONDGEN_1父级中,从而使父级关系“正确”......我已经开始这样做了。但是,我对这个错误很感兴趣,并想知道是否有其他人遇到过它(以及你自己如何处理它)。