PHP预定义接口——Iterator用法示例
本文实例讲述了PHP预定义接口——Iterator用法。分享给大家供大家参考,具体如下:
Iterator(迭代器)接口
可在内部迭代自己的外部迭代器或类的接口。
接口摘要
IteratorextendsTraversable{
/*方法*/
abstractpubliccurrent(void):mixed
abstractpublickey(void):scalar
abstractpublicnext(void):void
abstractpublicrewind(void):void
abstractpublicvalid(void):bool
}
例:
position=0;
}
/**
*返回当前元素
*/
publicfunctioncurrent()
{
var_dump(__METHOD__);
return$this->array[$this->position];
}
/**
*返回当前元素的键
*@returnint
*/
publicfunctionkey():int
{
var_dump(__METHOD__);
return$this->position;
}
/**
*将键移动到下一位
*/
publicfunctionnext():void
{
var_dump(__METHOD__);
++$this->position;
}
/**
*判断键所在位置的元素是否存在
*@returnbool
*/
publicfunctionvalid():bool
{
var_dump(__METHOD__);
returnisset($this->array[$this->position]);
}
}
$it=newmyIterator;
foreach($itas$key=>$value){
var_dump($key,$value);
echo"\n";
}
输出结果:
string'myIterator::rewind'(length=18)
string'myIterator::valid'(length=17)
string'myIterator::current'(length=19)
string'myIterator::key'(length=15)
int0
string'first_element'(length=13)
string'myIterator::next'(length=16)
string'myIterator::valid'(length=17)
string'myIterator::current'(length=19)
string'myIterator::key'(length=15)
int1
string'second_element'(length=14)
string'myIterator::next'(length=16)
string'myIterator::valid'(length=17)
string'myIterator::current'(length=19)
string'myIterator::key'(length=15)
int2
string'last_element'(length=12)
string'myIterator::next'(length=16)
string'myIterator::valid'(length=17)
由结果可知,当类实现了Iterator接口,实现改类实例数据集的时候首先会将数据集的键重置,然后逐步后移,每次都会进行然后返回当前元素以及当前键。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。