PHP迭代器接口Iterator用法分析
本文实例讲述了PHP迭代器接口Iterator用法。分享给大家供大家参考,具体如下:
PHPIterator接口的作用是允许对象以自己的方式迭代内部的数据,从而使它可以被循环访问,Iterator接口摘要如下:
IteratorextendsTraversable{ //返回当前索引游标指向的元素 abstractpublicmixedcurrent(void) //返回当前索引游标指向的键 abstractpublicscalarkey(void) //移动当前索引游标到下一元素 abstractpublicvoidnext(void) //重置索引游标 abstractpublicvoidrewind(void) //判断当前索引游标指向的元素是否有效 abstractpublicbooleanvalid(void) }
下面是一个简单的例子演示Iterator的使用方法:
_step.'步:执行'.__METHOD__.'
'; $this->_key=0; } /** *判断当前索引游标指向的元素是否设置 * *@seeTestIterator::valid() *@returnbool */ publicfunctionvalid(){ echo'第'.++$this->_step.'步:执行'.__METHOD__.'
'; returnisset($this->_test[$this->_key]); } /** *将当前索引指向下一位置 * *@seeTestIterator::next() */ publicfunctionnext(){ echo'第'.++$this->_step.'步:执行'.__METHOD__.'
'; $this->_key++; } /** *返回当前索引游标指向的元素的值 * *@seeTestIterator::current() *@returnvalue */ publicfunctioncurrent(){ echo'第'.++$this->_step.'步:执行'.__METHOD__.'
'; return$this->_test[$this->_key]; } /** *返回当前索引值 * *@returnkey *@seeTestIterator::key() */ publicfunctionkey(){ echo'第'.++$this->_step.'步:执行'.__METHOD__.'
'; return$this->_key; } } $iterator=newTestIterator(); foreach($iteratoras$key=>$value){ echo"输出索引为{$key}的元素".":$value".'
'; } ?>
以上例子将输出:
第1步:执行TestIterator::rewind 第2步:执行TestIterator::valid 第3步:执行TestIterator::current 第4步:执行TestIterator::key 输出索引为0的元素:dog 第5步:执行TestIterator::next 第6步:执行TestIterator::valid 第7步:执行TestIterator::current 第8步:执行TestIterator::key 输出索引为1的元素:cat 第9步:执行TestIterator::next 第10步:执行TestIterator::valid 第11步:执行TestIterator::current 第12步:执行TestIterator::key 输出索引为2的元素:pig 第13步:执行TestIterator::next 第14步:执行TestIterator::valid
从以上例子可以看出,如果执行valid返回false,则循环就此结束。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。