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.