Heim  >  Artikel  >  Backend-Entwicklung  >  php – Iterator-Schnittstelle

php – Iterator-Schnittstelle

伊谢尔伦
伊谢尔伦Original
2016-11-22 11:05:011159Durchsuche

Schnittstellen, die intern über ihren eigenen externen Iterator oder ihre eigene Klasse iterieren können.

Schnittstellenzusammenfassung

Iterator extends Traversable {
    /* 方法 */
    abstract public mixed current ( void )
    abstract public scalar key ( void )
    abstract public void next ( void )
    abstract public void rewind ( void )
    abstract public boolean valid ( void )
}

Vordefinierte Iteratoren

PHP stellt bereits einige Iteratoren für tägliche Aufgaben bereit, beispielsweise SPL-Iteratoren.

Beispiel

Beispiel #1 Grundlegende Verwendung

Dieses Beispiel zeigt die Aufrufsequenz von Iteratormethoden bei Verwendung von foreach.

<?php
    class myIterator implements Iterator {
        private $position = 0;
        private $array = array(
            "firstelement",
            "secondelement",
            "lastelement",
        );
        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 myIterator;
    foreach($it as $key => $value) {
        var_dump($key, $value);
        echo "\n";
    }
?>

Die Ausgabe der obigen Routine ähnelt:

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "firstelement"
string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"
string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "lastelement"
string(16) "myIterator::next"
string(17) "myIterator::valid"

Methodenliste

Iterator::current – ​​Gibt das aktuelle Element zurück

Iterator: :key – Gibt den Schlüssel des aktuellen Elements zurück

Iterator::next – Vorwärts zum nächsten Element gehen

Iterator::rewind – Zurück zum ersten Element des Iterators

Iterator::valid — Überprüfen Sie, ob die aktuelle Position gültig ist


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn