Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die gemeinsame Nutzung einer PHP-Iterator-Schnittstelle. Iterator-Nutzungsanalyse

Beispiel für die gemeinsame Nutzung einer PHP-Iterator-Schnittstelle. Iterator-Nutzungsanalyse

小云云
小云云Original
2017-12-29 16:42:561268Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung der PHP-Iterator-Schnittstelle Iterator vor und analysiert das Konzept, die Funktion, die Definition und die Verwendung der PHP-Iterator-Schnittstelle Iterator in Form von Beispielen. Ich hoffe, dass er allen helfen kann .

Die Funktion der PHP-Iterator-Schnittstelle besteht darin, dem Objekt zu ermöglichen, die internen Daten auf seine eigene Weise zu iterieren, sodass zyklisch darauf zugegriffen werden kann. Die Zusammenfassung der Iterator-Schnittstelle lautet wie folgt:


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 )
}

Das Folgende ist ein einfaches Beispiel, das die Verwendung von Iterator demonstriert:


<?php
/**
 * 该类允许外部迭代自己内部私有属性$_test,并演示迭代过程
 *
 * @author 疯狂老司机
 */
class TestIterator implements Iterator {
  /*
   * 定义要进行迭代的数组
   */
  private $_test = array(&#39;dog&#39;, &#39;cat&#39;, &#39;pig&#39;);
  /*
   * 索引游标
   */
  private $_key = 0;
  /*
   * 执行步骤
   */
  private $_step = 0;
  /**
   * 将索引游标指向初始位置
   *
   * @see TestIterator::rewind()
   */
  public function rewind() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    $this->_key = 0;
  }
  /**
   * 判断当前索引游标指向的元素是否设置
   *
   * @see TestIterator::valid()
   * @return bool
   */
  public function valid() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    return isset($this->_test[$this->_key]);
  }
  /**
   * 将当前索引指向下一位置
   *
   * @see TestIterator::next()
   */
  public function next() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    $this->_key++;
  }
  /**
   * 返回当前索引游标指向的元素的值
   *
   * @see TestIterator::current()
   * @return value
   */
  public function current() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    return $this->_test[$this->_key];
  }
  /**
   * 返回当前索引值
   *
   * @return key
   * @see TestIterator::key()
   */
  public function key() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    return $this->_key;
  }
}
$iterator = new TestIterator();
foreach($iterator as $key => $value){
  echo "输出索引为{$key}的元素".":$value".&#39;<br><br>&#39;;
}
?>

Das obige Beispiel gibt Folgendes aus:


第1步:执行 TestIterator::rewind
第2步:执行 TestIterator::valid
第3步:执行 TestIterator::current
第4步:执行 TestIterator::key
输出索引为0的元素:dog
第5步:执行 TestIterator::next
第6步:执行 TestIterator::valid
第7步:执行 TestIterator::current
第8步:执行 TestIterator::key
输出索引为1的元素:cat
第9步:执行 TestIterator::next
第10步:执行 TestIterator::valid
第11步:执行 TestIterator::current
第12步:执行 TestIterator::key
输出索引为2的元素:pig
第13步:执行 TestIterator::next
第14步:执行 TestIterator::valid

Verwandte Empfehlungen:

Detaillierte Beispiele für Iteratoren und for...of-Schleifen in der JavaScript ES6-Syntax

Java Detaillierte Erklärung des Iterators Iterator

Teilen Sie den Beispielcode des Iterators und der Iteratorschnittstelle

Das obige ist der detaillierte Inhalt vonBeispiel für die gemeinsame Nutzung einer PHP-Iterator-Schnittstelle. Iterator-Nutzungsanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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