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 相关文章推荐
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
PHP include_path设置技巧分享
Jul 03 PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
PHP中使用file_get_contents post数据代码例子
Feb 13 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
PHP实现动态web服务器方法
Jul 29 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
全面解读PHP的Yii框架中的日志功能
Mar 17 PHP
php实现三级级联下拉框
Apr 17 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
Oct 23 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
优化使用mysql存储session的php代码
2008/01/10 PHP
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
node.js中的console用法总结
2014/12/15 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
Python学习资料
2007/02/08 Python
Python isinstance判断对象类型
2008/09/06 Python
python实现RSA加密(解密)算法
2016/02/17 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
深入了解Python 变量作用域
2020/07/24 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
2014年电教工作总结
2014/12/19 职场文书
中学总务处工作总结
2015/08/12 职场文书