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程序设计有所帮助。