Tree van objecten maken
Mark Hogeveen
08/02/2014 20:26:50Hallo,
Ik heb iets dat me eerst heel simpel lijkt, en nu heel irritant is.
Ik heb bijvoorbeeld een klasse: Container.
Die klasse kan andere containers in zich dragen. Dit moet je gewoon zien als een multidemensionale array.
Voorbeeld:
De zogenaamde SpecialContainer op lijn 1 is een object waarvan ik bijvoorbeeld de metode printTree() van wil uitvoeren. Die methode zou dan een boomstructuur moeten echo'en van de objecten die er in zitten.
Dus zit nu wel steeds met loops enzovoort, maar ik weet niet hoe ik een nieuwe loop start, zonder deze letterlijk in de code te typen.
Je hebt ten minste 1 vaste loop die alles doorgaat. Bij elke lus kijk je of het huidige object weer objecten in zich heeft, maar als die weer objecten in zich hebben, en die weer in zich, en die weer, enz, hoe controleer je daarop?
Ik heb iets dat me eerst heel simpel lijkt, en nu heel irritant is.
Ik heb bijvoorbeeld een klasse: Container.
Die klasse kan andere containers in zich dragen. Dit moet je gewoon zien als een multidemensionale array.
Voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
SpecialContainer
- Container
|
+-- Container
+-- Container
|
+-- Container
- Container
- Container
|
+-- Container
- Container
- Container
|
+-- Container
+-- Container
|
+-- Container
- Container
- Container
|
+-- Container
- Container
De zogenaamde SpecialContainer op lijn 1 is een object waarvan ik bijvoorbeeld de metode printTree() van wil uitvoeren. Die methode zou dan een boomstructuur moeten echo'en van de objecten die er in zitten.
Dus zit nu wel steeds met loops enzovoort, maar ik weet niet hoe ik een nieuwe loop start, zonder deze letterlijk in de code te typen.
Je hebt ten minste 1 vaste loop die alles doorgaat. Bij elke lus kijk je of het huidige object weer objecten in zich heeft, maar als die weer objecten in zich hebben, en die weer in zich, en die weer, enz, hoe controleer je daarop?
Gewijzigd op 08/02/2014 20:27:55 door Mark Hogeveen
PHP hulp
23/11/2024 23:41:52Wouter J
08/02/2014 20:38:40Zoiets heet recursie.
Maar ik zou als ik jou was eens wat gaan inlezen over Iterators en dan met name de RecursiveIterator en RecursiveTreeIterator.
Maar ik zou als ik jou was eens wat gaan inlezen over Iterators en dan met name de RecursiveIterator en RecursiveTreeIterator.