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
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
PHP获取网站域名和地址的代码
Aug 17 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
深入解析PHP内存管理之谁动了我的内存
Jun 20 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
php递归删除指定文件夹的方法小结
Apr 20 PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
PHP attributes()函数讲解
Feb 03 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
javaScript实现滚动条事件详解
2020/03/24 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
介绍Python中内置的itertools模块
2015/04/29 Python
Python多进程机制实例详解
2015/07/02 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
医学生毕业自我鉴定
2014/03/26 职场文书
五水共治一句话承诺
2014/05/30 职场文书
新闻人物通讯稿
2014/10/09 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
离婚协议书范文2015
2015/01/26 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
解析Java异步之call future
2021/06/14 Java/Android