8.3 Einen eigenen Iterator implementieren

Problem

Sie wollen eine Reihe von Werten aus einem Objekt in einer foreach-Schleife auslesen. Die Werte sind aber nicht in einer Array-Eigenschaft gespeichert. Zum Beispiel wollen Sie die Werte erst zum Zeitpunkt der Iteration berechnen. Beispiel: Sie wollen die Namen der nächsten fünf Tage ausgeben.

Lösung

Implementieren Sie das Iterator-Interface, bestehend aus den Methoden rewind(), valid(), next(), key() und current():

class DayIterator implements Iterator{ public $n; // Zahl der auszugebenden Tage public $today; private $days = array( 0 => "Sonntag", 1 => "Montag", 2 => "Dienstag", 3 => "Mittwoch", 4 => "Donnerstag", 5 => "Freitag", 6 => "Samstag" ); private $currentDay; private $daysLeft; function _ ...

Get PHP 5 Kochbuch now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.