pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

PHP迭代器接口Iterator用法分析

這篇文章主要介紹了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相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

本文講述了php中json_encode處理gbk與gb2312中文亂碼問題的解決方法,具體方法如下: 1.json_encode()中文在gbk/gb2312中對中文返回為null $arr = array (??array (?? ?'catid' = '4',?? ?'catname' = 'www.gen
php中求三個數中最大值的實例代碼如下,希望能夠幫到需要的朋友 ?php//求三個數中的最大值function maxNum($x,$y,$z){ return $x$y ? ( $x$z ? $x : $z ) : ($y$z ?$y :$z);}echo maxNum(35,26,118);? 也可以通過下面
下面小編就為大家分享一篇解決PHP字符串長度不一致的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP讓數組中有相同值的組成新的數組實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇詳談PHP中public,private,protected,abstract等關鍵字的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要給大家介紹了關于php中通用的excel導出方法的相關資料,通過文中介紹的方法對大家學習或者使用php具有一定的參考學學習價值,需要的朋友們下面隨著小編來一起學習學習
主站蜘蛛池模板: 破碎机锤头_耐磨锤头_合金锤头-鼎成机械一站式耐磨铸件定制服务 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 武汉森源蓝天环境科技工程有限公司-为环境污染治理提供协同解决方案 | 纳米二氧化硅,白炭黑,阴离子乳化剂-臻丽拾科技 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 北京四合院出租,北京四合院出售,北京平房买卖 - 顺益兴四合院 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 派克防爆伺服电机品牌|国产防爆伺服电机|高低温伺服电机|杭州摩森机电科技有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 开云(中国)Kaiyun·官方网站-登录入口| 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 |