Iterator-Schnittstellen
Ein Objekt einer Klasse, die die vordefinierte Schnittstelle Iterator umsetzt, ist iterierbar. Das bedeutet, dass ein solches Objekt eine Reihe von Elementen umfasst, die mithilfe einer foreach-Schleife durchlaufen werden können. Dazu müssen in der Klasse die folgenden Methoden definiert werden:
    - current(): Diese Methode liefert das aktuelle Element.
- next(): Das nächste Element wird zum aktuelle Element.
- key(): Diese Methode liefert den Schlüssel des aktuellen Elements.
- valid(): Diese Methode liefert den booleschen Wert. True bedeutet, dass das aktuelle Element gültig ist. Auf diese Weise kann festgestellt werden, ob das Ende eines Durchlaufs erreicht ist.
- rewind(): Das erste Element wird zum aktuellen Element. Diese Methode spult sozusagen wieder an den Anfang zurück.
Quellcode
    
    
    interfaceIterator.php
    class Feld implements Iterator
    {
        private $nr;
        private $zahlen = array(17.5, 19.2, 21.8, 21.6, 18.1);
    
        function __construct()  { $this->nr = 0; }
        function current() { return $this->zahlen[$this->nr]; }
        function next()    { $this->nr = $this->nr + 2; }
        function key()     { return $this->nr; }
        function valid()   { return isset($this->zahlen[$this->nr]);}
        function rewind()  { $this->nr = 0; }
    }
    $feldObj = new Feld;
    foreach($feldObj as $schluessel => $wert)
        echo "$schluessel/$wert ";
    echo "
";
    for ($feldObj->rewind(); $feldObj->valid(); $feldObj->next())
    {
        $schluessel = $feldObj->key();
        $wert = $feldObj->current();
        echo "$schluessel/$wert ";
    }
    
    
 
Ausgabe
    Array 17.5, 19.2, 21.8, 21.6, 18.1 
Stelle im Array: 0/Wert: 17.5 Stelle im Array: 2/Wert: 21.8 Stelle im Array: 4/Wert: 18.1 
Stelle im Array: 0/Wert: 17.5 Stelle im Array: 2/Wert: 21.8 Stelle im Array: 4/Wert: 18.1