国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP迭代器接口Iterator用法分析

2024-05-05 00:01:39
字體:
供稿:網(wǎng)友

本文實例講述了PHP迭代器接口Iterator用法。分享給大家供大家參考,具體如下:

PHP Iterator接口的作用是允許對象以自己的方式迭代內(nèi)部的數(shù)據(jù),從而使它可以被循環(huán)訪問,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/** * 該類允許外部迭代自己內(nèi)部私有屬性$_test,并演示迭代過程 * * @author 瘋狂老司機 */class TestIterator implements Iterator {  /*   * 定義要進行迭代的數(shù)組   */  private $_test = array('dog', 'cat', 'pig');  /*   * 索引游標   */  private $_key = 0;  /*   * 執(zhí)行步驟   */  private $_step = 0;  /**   * 將索引游標指向初始位置   *   * @see TestIterator::rewind()   */  public function rewind() {    echo '第'.++$this->_step.'步:執(zhí)行 '.__METHOD__.'<br>';    $this->_key = 0;  }  /**   * 判斷當前索引游標指向的元素是否設(shè)置   *   * @see TestIterator::valid()   * @return bool   */  public function valid() {    echo '第'.++$this->_step.'步:執(zhí)行 '.__METHOD__.'<br>';    return isset($this->_test[$this->_key]);  }  /**   * 將當前索引指向下一位置   *   * @see TestIterator::next()   */  public function next() {    echo '第'.++$this->_step.'步:執(zhí)行 '.__METHOD__.'<br>';    $this->_key++;  }  /**   * 返回當前索引游標指向的元素的值   *   * @see TestIterator::current()   * @return value   */  public function current() {    echo '第'.++$this->_step.'步:執(zhí)行 '.__METHOD__.'<br>';    return $this->_test[$this->_key];  }  /**   * 返回當前索引值   *   * @return key   * @see TestIterator::key()   */  public function key() {    echo '第'.++$this->_step.'步:執(zhí)行 '.__METHOD__.'<br>';    return $this->_key;  }}$iterator = new TestIterator();foreach($iterator as $key => $value){  echo "輸出索引為{$key}的元素".":$value".'<br><br>';}?>

以上例子將輸出:

第1步:執(zhí)行 TestIterator::rewind第2步:執(zhí)行 TestIterator::valid第3步:執(zhí)行 TestIterator::current第4步:執(zhí)行 TestIterator::key輸出索引為0的元素:dog第5步:執(zhí)行 TestIterator::next第6步:執(zhí)行 TestIterator::valid第7步:執(zhí)行 TestIterator::current第8步:執(zhí)行 TestIterator::key輸出索引為1的元素:cat第9步:執(zhí)行 TestIterator::next第10步:執(zhí)行 TestIterator::valid第11步:執(zhí)行 TestIterator::current第12步:執(zhí)行 TestIterator::key輸出索引為2的元素:pig第13步:執(zhí)行 TestIterator::next第14步:執(zhí)行 TestIterator::valid

從以上例子可以看出,如果執(zhí)行valid返回false,則循環(huán)就此結(jié)束。

希望本文所述對大家PHP程序設(shè)計有所幫助。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 班玛县| 盖州市| 西乌珠穆沁旗| 大庆市| 昭苏县| 武功县| 四平市| 红桥区| 罗平县| 民和| 开江县| 马边| 延津县| 青浦区| 永丰县| 宁陵县| 阳西县| 湘西| 手游| 三都| 天津市| 南江县| 汪清县| 安顺市| 宁蒗| 丽水市| 拉孜县| 彩票| 北海市| 桃源县| 略阳县| 綦江县| 黄冈市| 松滋市| 永城市| 凤翔县| 塘沽区| 额尔古纳市| 石家庄市| 洪泽县| 荃湾区|