473

说明

1、实现其他迭代器功能的接口,相当于在其他迭代器上安装一个外壳,只有一种方法。

2、聚合迭代器可以与许多迭代器结合,实现更高效的迭代。

实例

classMainIteratorimplementsIterator
{
private$var=array();
publicfunction__construct($array)//构造函数,初始化对象数组
{
if(is_array($array)){
$this->var=$array;



publicfunctionrewind(){
echo"rewinding\n";
reset($this->var);//将数组的内部指针指向第一个单元


publicfunctioncurrent(){
$var=current($this->var);//返回数组中的当前值
echo"current:$var\n";
return$var;


publicfunctionkey(){
$var=key($this->var);//返回数组中内部指针指向的当前单元的键名
echo"key:$var\n";
return$var;


publicfunctionnext(){
$var=next($this->var);//返回数组内部指针指向的下一个单元的值
echo"next:$var\n";
return$var;


publicfunctionvalid(){
return!is_null(key($this->var);//判断当前单元的键是否为空