Hiçbir gerçek sorunları ile, oldukça basit ve kolaydır: Geri kendi ana bağlayan bir özellik içeren (üst sınıf nesneleri dizisi saklanan) tüm alt nesneleri ile, iç içe nesnelerin karmaşık bir hiyerarşi var. Ben hiyerarşisindeki herhangi bir nesnenin bir var_dump yaparsanız, ben beklediğiniz tam olarak, çöplükte bir özyinelemeli başvuru alırsınız.
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
Geçenlerde o hiyerarşi bazı yeni unsurlar ekledik ve onlar oldukça aynı desen takip etmiyorum. Onlar üst düzey ebeveyn nesnelerin bir dizi saklanan değil, ebeveyni, ama bir kardeş, onları geri bağlantı bir özellik içerirler. Ben şimdi bir var_dump yaptığınızda, ben bir "Ölümcül hata: Yuvalama seviye çok derin - recursive bağımlılık" olsun.
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
Kod içinde her şey o var_dump () hariç, düzgün çalışır. Bu soruyu sorarken ben bir örnek verebilir ki ben, sorunu göstermek için basit bir örnek oluşturma denedim; ama sadece benim daha karmaşık kodu içinde, kısa bir test bunu çoğaltmak mümkün olmamıştır.
I know that the solution is to refactor the relationship so that my _children_2 array of SECONDGEN_2 objects is held in the appropriate SECONDGEN_1 parent, making the parent relationship "correct"... I've already started doing this. However, I'm intrigued by the error, and wondered if anybody else had encountered it (and how you dealt with it yourself).