浅谈PHP接口Iterator的基本用法是什么样的
Admin 2022-09-23 群英技术资讯 944 次浏览
这篇主要是介绍“浅谈PHP接口Iterator的基本用法是什么样的”的内容了,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家解决浅谈PHP接口Iterator的基本用法是什么样的的问题,下面我们一起来了解看看吧。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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
swoole不能访问的解决办法:首先使用命令“yum install -y openssl”安装openssl;然后安装swoole;接着通命令“php-config --enable-openssl”进行编译即可正常访问。
在PHP内部,系统维护着连接状态,其状态有三种可能的情况:0-NORMAL(正常)1-ABORTED(异常退出)2-TIMEOUT(超时)当PHP脚本正常地运行NORMAL状态时,...
这篇文章给大家分享的是有关laravel执行迁移回滚的内容,小编认为回滚操作是比价实用的,因此分享给大家作参考。下面我们就一起来了解一下,怎样执行迁移回滚操作吧。
laravel gulp出错的解决办法:1、打开终端命令窗口;2、通过执行“$ npm rebuild node-sass”命令即可解决Gulp命令出错问题。
本文主要给大家分享的是关于laravel框架模型一对一关系的内容,主要介绍一对一关系的实现以及使用,感兴趣的朋友可以参考学习,下面就跟随小编一起来看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008