[php]php设计模式 Interator (迭代器模式)

复制代码
1 <?php
2 /**
3 * 迭代器模式
4 *
5 * 提供一个方法顺序访问一聚合对象中的各个元素,而又不暴露对象的内部表示
6 */
7 interface Interator
8 {
9 publicfunctionnext();
10 publicfunction first();
11 publicfunctioncurrent();
12 publicfunction isDone();
13 }
14
15 class SomeInterator implements Interator
16 {
17 private$_arr=array();
18
19 publicfunction __construct($arr)
20 {
21 $this->_arr =$arr;
22 }
23
24 publicfunction first()
25 {
26 return$this->_arr[0];
27 }
28
29 publicfunctioncurrent()
30 {
31 returncurrent($this->_arr);
32 }
33
34 publicfunctionnext()
35 {
36 returnnext($this->_arr);
37 }
38
39 publicfunction isDone()
40 {
41 }
42 }
43
44 $objSomeInterator=new SomeInterator(array(1,2,3,4,6,7));
45 echo$objSomeInterator->first(),"<br/>";
46 echo$objSomeInterator->next(),"<br/>";
47 echo$objSomeInterator->current(),"<br/>";
48 echo$objSomeInterator->current(),"<br/>";
49 echo$objSomeInterator->next(),"<br/>";
50 echo$objSomeInterator->current(),"<br/>";
复制代码

posted on   bluefrog  阅读(1761)  评论(0编辑  收藏  举报

编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
< 2011年6月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

统计

点击右上角即可分享
微信分享提示