php设计模式之迭代器模式
2015-07-15 09:08
916 查看
1.概念介绍
1.迭代器模式:在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。2.相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需的操作。
3.这里介绍的迭代器需要实现(implements)PHP SPL 里面的
Iterator,需要实现5个方法(current, next,valid,rewid,key)
2.代码展示
namespace brave class AllUser implements \Iterator { //所有user的id protected $ids; //保存数据库查询的对象,如果有就不需要在次查询了,可使用注册模式 protected $data = array(); //表示迭代器当前的位置 protected $index; function __construct() { $db = Factory::getDatabase(); $result = $db->query("select id from user"); $this->ids = $result->fetch_all(MYSQLI_ASSOC); } //获取当前用户对象 function current() { $id = $this->ids[$this->index]['id']; return Factory::getUser($id); } //进入下一个索引 function next() { $this->index ++; } //检查当前是否有数据 function valid() { return $this->index < count($this->ids); } //使当前的指针回到开始位置 function rewind() { $this->index = 0; } //获取当前的索引值 function key() { return $this->index; } }
3.执行代码
//迭代器模式实例 $users = new AllUser(); foreach ($users as $user) { var_dump($user); echo '<hr>'; }
相关文章推荐
- PHP设计模式之:单例模式
- 关于php中携带的php-fpm和php-cgi的理解纠正
- PHP结合JAVA的开发技术 LAJP
- php实现页面静态相关知识点
- PHP中超全局变量$GLOBALS和global的区别
- PHP实现对png图像进行缩放的方法(支持透明背景)
- ajax+php控制所有后台函数调用
- php项目中百度 UEditor 简单安装调试和调用
- PHP高手总结10条开发建议优化
- PHP实现Word与excel等转换pdf方法
- php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法
- php项目如何自定义404页面
- laravel5.0 view层 解决本地服务器和远程服务器网站路径问题
- php-001-win7 环境下 wamp 的至简部署
- laravel5.0 view层页面之间的跳转流程[通过route路由控制]
- OLAP、OLTP的介绍和比较
- 安装PHP缺少模块报错的解决办法
- yii2的gradview点击按钮通过get方法传参给数据库
- 读《PHP和MySQL Web开发》
- Php基础字符串篇