PHP Dokumentation: Class iterator
12. Januar 2010 von werner
Das Iterator-Interface
Einführung
Interface für externe Iteratoren oder Objekte, die selbstiterierend sind.
Interface-Übersicht
Beispiel #1 Basisnutzung
Dieses Beispiel demonstriert, in welcher Reihenfolge Methoden aufgerufen werden, wenn Sie foreach auf einem Iterator anwenden.
<?php
class meinIterator implements Iterator {
private $position = 0;
private $array = array(
"erstesElement",
"zweitesElement",
"letztesElement",
); public function
__construct() {
$this->position = 0;
} function
rewind() {
var_dump(__METHOD__);
$this->position = 0;
} function
current() {
var_dump(__METHOD__);
return $this->array[$this->position];
} function
key() {
var_dump(__METHOD__);
return $this->position;
} function
next() {
var_dump(__METHOD__);
++$this->position;
} function
valid() {
var_dump(__METHOD__);
return isset($this->array[$this->position]);
}
}$it = new meinIterator;foreach(
$it as $key => $value) {
var_dump($key, $value);
echo "\n";
}
?>Das oben gezeigte Beispiel erzeugteine ähnliche Ausgabe wie:
string(18) "meinIterator::rewind"string(17) "meinIterator::valid"string(19) "meinIterator::current"string(15) "meinIterator::key"int(0)string(12) "erstesElement"string(16) "meinIterator::next"string(17) "meinIterator::valid"string(19) "meinIterator::current"string(15) "meinIterator::key"int(1)string(13) "zweitesElement"string(16) "meinIterator::next"string(17) "meinIterator::valid"string(19) "meinIterator::current"string(15) "meinIterator::key"int(2)string(11) "letztesElement"string(16) "meinIterator::next"string(17) "meinIterator::valid"
Inhaltsverzeichnis
- Iterator::current ? Gibt das aktuelle Element zurück
- Iterator::key ? Gibt den Schlüssel des aktuellen Elements zurück
- Iterator::next ? Rückt den Zeiger auf das nächste Element vor
- Iterator::rewind ? Setzt den Iterator auf das erste Element zurück
- Iterator::valid ? Prüft, ob die aktuelle Position zulässig ist