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 相关文章推荐
5.PHP的其他功能
Oct 09 PHP
《PHP边学边教》(01.开篇――准备工作)
Dec 13 PHP
php 获取客户端的真实ip
Nov 30 PHP
php 8小时时间差的解决方法小结
Dec 22 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
Oct 13 PHP
使用PHP编写的SVN类
Jul 18 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
getJSON跨域SyntaxError问题分析
Aug 07 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
PHP类的自动加载机制实现方法分析
Jan 10 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 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
模仿OSO的论坛(三)
2006/10/09 PHP
php单例模式示例分享
2015/02/12 PHP
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
linux下安装easy_install的方法
2013/02/10 Python
9种python web 程序的部署方式小结
2014/06/30 Python
详解Python中break语句的用法
2015/05/14 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
python逆向入门教程
2018/01/15 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
python 画图 图例自由定义方式
2020/04/17 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
师范生自荐信范文
2013/10/06 职场文书
项目合作协议书
2014/04/16 职场文书
加入学生会演讲稿
2014/04/24 职场文书
师德师风个人总结
2015/02/06 职场文书
学校会议通知范文
2015/04/15 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
Python基础之条件语句详解
2021/06/16 Python