浅谈PHP接口Iterator的基本用法是什么样的
Admin 2022-09-23 群英技术资讯 490 次浏览
Iterator(迭代器)接口
可在内部迭代自己的外部迭代器或类的接口。
Iterator extends Traversable { /* 方法 */ abstract public current ( void ) : mixed abstract public key ( void ) : scalar abstract public next ( void ) : void abstract public rewind ( void ) : void abstract public valid ( void ) : bool }
<?php class myIterator implements Iterator { private $position = 0; private $array = array( 'first_element', 'second_element', 'last_element', ); /** * 重置键的位置 */ public function rewind(): void { var_dump(__METHOD__); $this->position = 0; } /** * 返回当前元素 */ public function current() { var_dump(__METHOD__); return $this->array[$this->position]; } /** * 返回当前元素的键 * @return int */ public function key(): int { var_dump(__METHOD__); return $this->position; } /** * 将键移动到下一位 */ public function next(): void { var_dump(__METHOD__); ++$this->position; } /** * 判断键所在位置的元素是否存在 * @return bool */ public function valid(): bool { var_dump(__METHOD__); return isset($this->array[$this->position]); } } $it = new myIterator; foreach ($it as $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)
int 0
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)
int 1
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)
int 2
string 'last_element' (length=12)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)
由结果可知,当类实现了Iterator接口,实现改类实例数据集的时候首先会将数据集的键重置,然后逐步后移,每次都会进行然后返回当前元素以及当前键。
关于“浅谈PHP接口Iterator的基本用法是什么样的”的内容今天就到这,感谢各位的阅读,大家可以动手实际看看,对大家加深理解更有帮助哦。如果想了解更多相关内容的文章,关注我们,群英网络小编每天都会为大家更新不同的知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在本篇文章里小编给大家分享了关于PHP内置函数生成随机数实例内容,对此有兴趣的朋友们可以学习下。
如果没有定义任何命名空间,所有的类与函数的定义都是在全局空间,与PHP引入命名空间概念前一样。在名称前加上前缀 \ 表示该名称是全局空间中的名称,即使该名称位于其...
如果后台数据处理使用PHP来进行,那么就要有相应的数据处理及返回。最常用的就是获取记录总数和表记录查询结果。本文将为大家介绍如何利用PHP实现获取MySQL数据库的记录数据,需要的可以参考一下
在thinkphp中,find方法用于获取数据表中满足条件的一行记录,该函数只能够返回一行记录,若获取多条满足条件的记录,返回的是第一条记录,结果是一个数组,数组的key和sql中的field相对应。
php利用ZipArchive类操作文件的实例,ZipArchive类是专门用于文件的压缩与解压操作的类,通过压缩文件可以达到节省磁盘空间的目的,并且压缩文件体积更小,便于网络传输。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008