国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 永川市| 五原县| 临清市| 海城市| 黔南| 称多县| 周口市| 绥宁县| 林芝县| 施甸县| 镇沅| 崇州市| 沿河| 桓台县| 逊克县| 成都市| 广平县| 九龙县| 乌拉特前旗| 正蓝旗| 淮安市| 扬州市| 平乐县| 宜兰市| 安陆市| 乌鲁木齐市| 鄱阳县| 巴林左旗| 渑池县| 广宁县| 得荣县| 江达县| 安泽县| 阿拉善右旗| 柘城县| 乌拉特中旗| 伊宁县| 如东县| 兴城市| 长子县| 伊金霍洛旗|