PHP聚合式迭代器接口IteratorAggregate用法分析


Posted in PHP onDecember 28, 2017

本文实例讲述了PHP聚合式迭代器接口IteratorAggregate用法。分享给大家供大家参考,具体如下:

PHP IteratorAggregate又叫聚合式迭代器,它提供了创建外部迭代器的接口,接口摘要如下:

IteratorAggregate extends Traversable {
  abstract public Traversable getIterator ( void )
}

实现getIterator方法时必须返回一个实现了Iterator接口的类的实例。

例子说明:

<?php
/**
 * 利用聚合式迭代器,并返回一个实现了Iterator接口的类的实例
 *
 * @author 疯狂老司机
 */
class myData implements IteratorAggregate {
  public $one = "Public property one";
  public $two = "Public property two";
  public $three = "Public property three";
  public function __construct() {
    $this->last = "last property";
  }
  public function getIterator() {
    return new ArrayIterator($this);
  }
}
$obj = new myData;
foreach($obj as $key => $value) {
  var_dump($key, $value);
  echo '<br>';// Linux:echo "\n";
}
?>

以上例子输出:

string 'one' (length=3)
string 'Public property one' (length=19)
string 'two' (length=3)
string 'Public property two' (length=19)
string 'three' (length=5)
string 'Public property three' (length=21)
string 'last' (length=4)
string 'last property' (length=13)

ArrayIterator迭代器会把对象或数组封装为一个可以通过foreach来操作的类,具体可参考SPL 迭代器相关介绍,感兴趣的朋友可参考本站https://3water.com/article/43074.htm。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
域名查询代码公布
Oct 09 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
深入解析php模板技术原理【一】
Jan 10 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
Laravel框架下的Contracts契约详解
Mar 17 PHP
PHP迭代器接口Iterator用法分析
Dec 28 #PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 #PHP
PHP获取数组中指定的一列实例
Dec 27 #PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 #PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 #PHP
Laravel中使用Queue的最基本操作教程
Dec 27 #PHP
php获取ajax的headers方法与内容实例
Dec 27 #PHP
You might like
php Mysql日期和时间函数集合
2007/11/16 PHP
php图片验证码代码
2008/03/27 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
php中使用sftp教程
2015/03/30 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
Vue中实现权限控制的方法示例
2019/06/07 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
python代码实现猜拳小游戏
2020/11/30 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
机械电子工程专业求职信
2014/06/22 职场文书
小学班级口号大全
2015/12/25 职场文书