PHP Iterierbare Schnittstelle

PHPz
Freigeben: 2023-08-20 14:50:01
nach vorne
904 Leute haben es durchsucht

PHP Iterable接口

Die Einführung der Schnittstelle

Iterator erweitert die abstrakte Schnittstelle Traversable. PHP bietet eine Reihe integrierter Iteratoren (sogenannte SPL-Iteratoren) für viele gängige Funktionen. Zum Beispiel ArrayIterator, DirectoryIterator usw. Benutzerklassen, die die Iterator-Schnittstelle implementieren, sollten die darin definierten abstrakten Methoden implementieren.

Syntax

Iterator extends Traversable {
   /* Methods */
   abstract public current ( void ) : mixed
   abstract public key ( void ) : scalar
   abstract public next ( void ) : void
   abstract public rewind ( void ) : void
   abstract public valid ( void ) : bool
}
Nach dem Login kopieren

Methoden

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

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

Iterator::next – Geht zum nächsten Element.

Iterator::rewind – Wird iteriert. Iterator spult das erste Element zurück.

Iterator::valid – Prüft, ob die aktuelle Position gültig ist.

Bei der Implementierung der Schnittstellen IteratorAggregate oder Iterator müssen diese vor ihren Namen in der Klausel implements aufgeführt werden.

Iterator-Beispiel

Im folgenden PHP-Skript enthält eine Klasse, die eine Schnittstelle implementiert, eine private Variable als Array. Durch die Implementierung der abstrakten Methode des Iterators können wir mithilfe der foreach-Schleife und der next()-Methode über das Array iterieren.

Beispiel

<?php
class myIterator implements Iterator {
   private $index = 0;
   private $arr = array(10,20,30,40);
   public function __construct() {
      $this->index = 0;
   }
   public function rewind() {
      $this->index = 0;
   }
   public function current() {
      return $this->arr[$this->index];
   }
   public function key() {
      return $this->index;
   }
   public function next() {
      ++$this->index;
   }
   public function valid() {
      return isset($this->arr[$this->index]);
   }
}
?>
Nach dem Login kopieren

Mit einer foreachSchleife können wir über die Array-Eigenschaften eines MyIterator-Objekts iterieren.

$it = new myIterator();
foreach($it as $key => $value) {
   echo "$key=>". $value ."</p><p>";
}
Nach dem Login kopieren

Iteration kann auch durch Aufrufen der Methode next() in einer While-Schleife durchgeführt werden. Bevor Sie die Schleife starten, stellen Sie sicher, dass Sie den Iterator „zurückspulen“. Beispiel

$it->rewind();
do {
   echo $it->key() . "=>" .$it->current() . "</p><p>";
   $it->next();
}
while ($it->valid());
Nach dem Login kopieren

Ausgabe

In beiden Fällen zeigt die Durchquerung der Array-Eigenschaften die folgenden Ergebnisse

0=>10
1=>20
2=>30
3=>40
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP Iterierbare Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage