PHP迭代器介面Iterator用法的分析

來源:互聯網
上載者:User
這篇文章主要介紹了PHP迭代器介面Iterator用法,結合執行個體形式分析了PHP迭代器介面Iterator的概念、功能、定義與使用方法,需要的朋友可以參考下

本文執行個體講述了PHP迭代器介面Iterator用法。分享給大家供大家參考,具體如下:

PHP Iterator介面的作用是允許對象以自己的方式迭代內部的資料,從而使它可以被逐一查看,Iterator介面摘要如下:

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

下面是一個簡單的例子示範Iterator的使用方法:

<?php/** * 該類允許外部迭代自己內部私人屬性$_test,並示範迭代過程 * * @author 瘋狂老司機 */class TestIterator implements Iterator {  /*   * 定義要進行迭代的數組   */  private $_test = array('dog', 'cat', 'pig');  /*   * 索引遊標   */  private $_key = 0;  /*   * 執行步驟   */  private $_step = 0;  /**   * 將索引遊標指向初始位置   *   * @see TestIterator::rewind()   */  public function rewind() {    echo '第'.++$this->_step.'步:執行 '.__METHOD__.'<br>';    $this->_key = 0;  }  /**   * 判斷當前索引遊標指向的元素是否設定   *   * @see TestIterator::valid()   * @return bool   */  public function valid() {    echo '第'.++$this->_step.'步:執行 '.__METHOD__.'<br>';    return isset($this->_test[$this->_key]);  }  /**   * 將當前索引指向下一位置   *   * @see TestIterator::next()   */  public function next() {    echo '第'.++$this->_step.'步:執行 '.__METHOD__.'<br>';    $this->_key++;  }  /**   * 返回當前索引遊標指向的元素的值   *   * @see TestIterator::current()   * @return value   */  public function current() {    echo '第'.++$this->_step.'步:執行 '.__METHOD__.'<br>';    return $this->_test[$this->_key];  }  /**   * 返回當前索引值   *   * @return key   * @see TestIterator::key()   */  public function key() {    echo '第'.++$this->_step.'步:執行 '.__METHOD__.'<br>';    return $this->_key;  }}$iterator = new TestIterator();foreach($iterator as $key => $value){  echo "輸出索引為{$key}的元素".":$value".'<br><br>';}?>

以上例子將輸出:

第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

從以上例子可以看出,如果執行valid返回false,則迴圈就此結束。

您可能感興趣的文章:

PHP彙總式迭代器介面IteratorAggregate的用法分析

PHP檢測介面Traversable的用法詳解

PHP自訂序列化介面Serializable用法分析講解

PHP 的Opcache加速的使用方法詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.