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 __construct($n ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.