Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4793
| From | Karl Pflästerer <k@rl.pflaesterer.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: IteratorAggregate und RecursiveIterator |
| Date | 2022-03-15 22:38 +0100 |
| Message-ID | <m1bky6galq.fsf@mbp.pflaesterer.de> (permalink) |
| References | <1t622f1d91i3c3ed3n3e8%sfroehli@Froehlich.Priv.at> |
Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) writes: > Ich habe da eine Collection, die implementiert \Iterator und für > ausgewählte Anwendungsfälle auch (davon abgeleitet) > \RecursiveIterator. > > \Iterator ist klassisch implementiert; die Klasse enthält ein Array, > auf das werden current(), next() etc. angewendet. Nun reicht das > leider nicht immer aus, da gelegentlich verschachtelt iteriert wird, > was wg. des Array-Pointers nicht funktioniert. > > Nötig wäre wohl die Implementierung von \IteratorAggregate, damit > foreach() den dort erstellten Iterator statt des Array-Pointers > verwendet. Das geht aber nicht, weil \IteratorAggregate ebenso wie > \RecursiveIterator eine Erweiterung von \Iterator darstellt, was wg. > Mehrfachvererbung nicht sein darf. > > Ich behelfe mir damit, $object->getIterator() zu verwenden, wenn > iteriert werden soll, aber schön ist das nicht - ich vergesse > gelegentlich darauf, der Unterschied fällt erst auf, wenn > verschachtelt iteriert wird, und selbst dann wird kein Fehler > geworfen, sondern einfach ein falsches Ergebnis produziert. > > Komme ich irgendwie drumherum, oder habe ich einfach Pech gehabt? Was meinst du mit verschachtelt iteriert? Iterierst du (Schleife in Schleife) über dasselbe Objekt mehrfach? Oder hast du eine tiefere baumstruktur, über die du (depth first oder breadth first) iterierst?
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
IteratorAggregate und RecursiveIterator Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2022-03-14 10:57 +0000
Re: IteratorAggregate und RecursiveIterator Karl Pflästerer <k@rl.pflaesterer.de> - 2022-03-15 22:38 +0100
Re: IteratorAggregate und RecursiveIterator Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2022-03-16 09:22 +0000
csiph-web