PHP设计模式之迭代器模式


Posted in PHP onJune 17, 2016

在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素而又不暴露该对象的内部表示,这就是PHP迭代器模式的定义。

适用场景:
访问一个聚合对象的内容而无需暴露它的内部表示
支持对聚合对象的多种遍历
为遍历不同的聚合结构提供一个统一的接口

迭代器模式实例:

<?php
class ConcreteIterator implements Iterator{
 private $position = 0;
 private $arr;
 function __construct(array $arr){
 $this->arr = $arr;
 }

 function rewind(){
 $this->position = 0;
 }

 function current(){
 return $this->arr[$this->position];
 }

 function key(){
 return $this->position;
 }

 function next(){
 ++$this->position;
 }

 function valid(){
 return isset($this->arr[$this->position]);
 }
}

$arr = array('xiao hong','xiao ming','xiaohua');
$concreteIterator = new ConcreteIterator($arr);
foreach ($concreteIterator as $key => $value) {
 echo $key."=>".$value."\n";
}

以上就是本文的全部内容,希望对大家学习PHP设计模式有所帮助。

PHP 相关文章推荐
聊天室php&amp;mysql(一)
Oct 09 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
Dec 18 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
php创建类并调用的实例方法
Sep 25 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
PHP unset函数原理及使用方法解析
Aug 14 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 #PHP
学习PHP session的传递方式
Jun 15 #PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 #PHP
PHP实现适用于文件内容操作的分页类
Jun 15 #PHP
PHP实现适用于自定义的验证码类
Jun 15 #PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 #PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 #PHP
You might like
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
js 操作符实例代码
2009/10/24 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
JS实现复制功能
2017/03/01 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
python 2.7.14安装图文教程
2018/04/08 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
python线程中的同步问题及解决方法
2019/08/29 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
教育学专业实习生的自我鉴定
2013/11/26 职场文书
优秀公益广告词大全
2014/03/19 职场文书
个人委托书怎么写
2014/04/04 职场文书
小学五年级学生评语
2014/04/22 职场文书
天下第一关导游词
2015/02/06 职场文书
公司考勤管理制度
2015/08/04 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python