Heim  >  Artikel  >  Backend-Entwicklung  >  PHP Iterierbare Schnittstelle

PHP Iterierbare Schnittstelle

PHPz
PHPznach vorne
2023-08-20 14:49:09878Durchsuche

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
}

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]);
   }
}
?>

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>";
}

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());

Ausgabe

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

0=>10
1=>20
2=>30
3=>40

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen