[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/>";
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/>";
think in coding
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 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 构建精确任务处理应用