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 pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
session在PHP大型web应用中的使用
Jun 25 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
计算php页面运行时间的函数介绍
Jul 01 PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 PHP
PHP的魔术常量__METHOD__简介
Jul 08 PHP
php计算函数执行时间的方法
Mar 20 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
使用laravel指定日志文件记录任意日志
Oct 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之第三天
2006/10/09 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php分页示例分享
2014/04/30 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
基于jquery的15款幻灯片插件
2011/04/10 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
python 提取文件的小程序
2009/07/29 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Python和Sublime整合过程图示
2019/12/25 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
Python实现手绘图效果实例分享
2020/07/22 Python
优秀员工表扬信
2014/01/17 职场文书
民族团结先进个人材料
2014/02/05 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS