Suchen
Inside Wiki
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > phpforum.de Wiki > phpforum.de Wiki

PHP Wiki Dieses Wiki sammelt Lösungen, zu Problemen, welche immer wieder im Forum auftauchen.

 
 
Artikel-Optionen Ansicht
  #1  

Standard SPL InfiniteIterator

 


 

OOP Design Pattern - Inhalte

InfiniteIterator


Infinite == Unendlich/Grenzenlos
Der InfiniteIterator implementiert u.a. das SPL Iterator Interface. Erreicht der Iterator sein Ende, setzt er wieder am Anfang auf. Dadurch ergibt sich eine unendliche Anzahl möglicher iterations Schritte. Ein Wraparound über die Datenmenge.

Vorsicht


Die direkte Verwendung in foreach() kann, ja wird, zu einer Endlosschleife führen. Es ist sinnvoll in der Schleife ein Abbruchkriterium einzuführen, oder einen SPL LimitIterator vor zu schalten.


Der InfiniteIterator im Beispiel


Gegeben sei ein Iterator, welcher auf eine handvoll Bilder/Dateien verweist. Weniger Bilder als Tage im Jahr.
Und die Aufgabe:
1. Zeige jeden Tag 3 Bilder
2. Wechsel jeden Tag den Startpunkt


PHP Quellcode:
// testdaten
$array = array('bild1.jpg','bild2.jpg','bild3.jpg',
               'bild4.jpg','bild5.jpg','bild6.jpg',
               'bild7.jpg','bild8.jpg');

$it = new ArrayIterator($array); // Das Array mit einem Iterator versehen
$it = new InfiniteIterator($it); // Unendlich machen
$it = new LimitIterator($it,date('z'),3); // auf einen Ausschnitt begrenzen

// Ausgabe der 3 Bilder
foreach($it as $bild)
{
  echo $bild,'<br>';
}

« Vorheriges Kapitel   OOP Design Pattern

Mitwirkende: combie
Erstellt von combie, 31.10.2009 am 12:18
Zuletzt bearbeitet von combie, 31.10.2009 am 12:18
0 Kommentare , 5787 Betrachtungen

Dieser Text steht unter der GNU-Lizenz für freie Dokumentation


 

Lesezeichen

Stichworte
arrayiterator, infiniteiterator, limititerator

Artikel-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:24 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC