WEB开发笔记 www.chhua.com 每日练习 PHP设计模式——迭代器模式

呵呵,迭代器模式是PHP开发中非常有用的一个设计模式,其主要的应用范围如下:
一、使用返回迭代器的包或库时(如PHP5中的SPL迭代器)
二、无法在一次的调用获取容器的所有元素时
三、要处理数量巨大的无素时(数据库中的表以GB计的数据)

不同的迭代器有不同的接口,例如PHP SPL迭代器中包括Next()(移动到下一个元素),corrent()(返回当前元素),valid()(检查迭代结尾),rewind()(从头重新开始),key()(返回当前元素的索引)。
可以自己写适合自己用的迭代器,也可以用系统中的迭代器。

下面用代码来演示一下, PHP设计模式的迭代器模式在编程中的应用,迭代器主要是拼命循环语句的应用。

使用SPL迭代器的WHILE循环形式如下:

1
2
3
4
5
6
<span style="color: #000000;font-weight: bold"><?php</span>
<span style="color: #b1b100">while</span> <span style="color: #009900">(</span><span style="color: #000088">$itertor</span><span style="color: #339933">-></span><span style="color: #004000">valid</span><span style="color: #009900">(</span><span style="color: #009900">)</span><span style="color: #009900">)</span><span style="color: #009900">{</span><span style="color: #666666;font-style: italic">//判断是不是最后元素</span>
	<span style="color: #000088">$element</span><span style="color: #339933">=</span><span style="color: #000088">$itertor</span><span style="color: #339933">-></span><span style="color: #004000">current</span><span style="color: #009900">(</span><span style="color: #009900">)</span><span style="color: #339933">;</span><span style="color: #666666;font-style: italic">//获取当前元素</span>
	<span style="color: #000088">$itertor</span><span style="color: #339933">-></span><span style="color: #004000">next</span><span style="color: #009900">(</span><span style="color: #009900">)</span><span style="color: #339933">;</span><span style="color: #666666;font-style: italic">//移动到下一个元素</span>
<span style="color: #009900">}</span>
<span style="color: #000000;font-weight: bold">?></span>

以上只是一个非常简单的迭代器的使用方式,也可以配合FOR 和FOREACH 循环使用,这里不做阐述