浅谈PHP接口Iterator的基本用法是什么样的
Admin 2022-09-23 群英技术资讯 975 次浏览
这篇主要是介绍“浅谈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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
今天小编就为大家分享一篇关于PHP递归算法的简单实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
TP5框架怎么实现多图片上传预览?我们在需要上传多图片的时候,如果有上传图片预览操作,那么用户体验感是比较好。这篇文章就给大家分享一下TP5框架实现多图片上传预览的方法,文本示例具有一定参考价值,下面我们一起来了解一下。
用法:1、存储数据,语法为“session()->put('key1', 'value1')”;2、获取数据,语法为“session()->all()”;3、清空或删除数据,语法为“session()->pull('key3');”。
在一个命名空间中,当PHP遇到一个非限定的类、函数或常量名称时,它使用不同的优先策略来解析该名称。类名称总是解析到当前命名空间中的名称。因此在访问系统内部或不包...
今天小编就为大家分享一篇解决tp5在nginx下修改配置访问的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
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