Beispiel für die Verwendung eines Iterators einer vordefinierten PHP-Schnittstelle

coldplay.xixi
Freigeben: 2023-04-09 08:06:01
nach vorne
1907 Leute haben es durchsucht

Beispiel für die Verwendung eines Iterators einer vordefinierten PHP-Schnittstelle

Das Beispiel in diesem Artikel beschreibt die Verwendung des Iterators der vordefinierten PHP-Schnittstelle. Teilen Sie es wie folgt mit allen als Referenz:

Iterator-Schnittstelle

Eine Schnittstelle, die intern über ihren eigenen externen Iterator oder ihre eigene Klasse iterieren kann.

Schnittstellenzusammenfassung

Iterator extends Traversable {
    /* 方法 */
    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

Beispiel:

<?php
class myIterator implements Iterator
{
  private $position = 0;
  private $array = array(
    &#39;first_element&#39;,
    &#39;second_element&#39;,
    &#39;last_element&#39;,
  );

  /**
   * 重置键的位置
   */
  public function rewind(): void
  {
    var_dump(__METHOD__);
    $this->position = 0;
  }

  /**
   * 返回当前元素
   */
  public function current()
  {
    var_dump(__METHOD__);
    return $this->array[$this->position];
  }

  /**
   * 返回当前元素的键
   * @return int
   */
  public function key(): int
  {
    var_dump(__METHOD__);
    return $this->position;
  }

  /**
   * 将键移动到下一位
   */
  public function next(): void
  {
    var_dump(__METHOD__);
    ++$this->position;
  }

  /**
   * 判断键所在位置的元素是否存在
   * @return bool
   */
  public function valid(): bool
  {
    var_dump(__METHOD__);
    return isset($this->array[$this->position]);
  }
}

$it = new myIterator;

foreach ($it as $key => $value) {
  var_dump($key, $value);
  echo "\n";
}
Nach dem Login kopieren

Ausgabeergebnis:

string 'myIterator::rewind' (length=18 )
String 'myIterator::valid' (Länge=17)
String 'myIterator::current' (Länge=19)
String 'myIterator::key' (Länge=15)
int 0
String 'first_element' (Länge=13)
String 'myIterator::next' (Länge=16)
String 'myIterator::valid' (Länge=17)
String 'myIterator: :current' (Länge=19)
string 'myIterator::key' (länge=15)
int 1
string 'second_element' (länge=14)
string 'myIterator::next' (Länge=16)
String 'myIterator::valid' (Länge=17)
String 'myIterator::current' (Länge=19)
String 'myIterator::key' (Länge=15)
int 2
String 'last_element' (Länge=12)
String 'myIterator::next' (Länge=16)
String 'myIterator::valid' (Länge=17)

Aus den Ergebnissen geht hervor, dass, wenn eine Klasse die Iterator-Schnittstelle implementiert und den Klasseninstanzdatensatz ändert, die Schlüssel des Datensatzes zunächst zurückgesetzt und dann jedes Mal schrittweise zurückgesetzt werden aktuelles Element und der aktuelle Schlüssel.

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonBeispiel für die Verwendung eines Iterators einer vordefinierten PHP-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
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