Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4793

Re: IteratorAggregate und RecursiveIterator

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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