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下一个非常全面获取图象信息的函数
Nov 20 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
php empty函数 使用说明
Aug 10 PHP
hessian 在PHP中的使用介绍
Dec 13 PHP
php下通过IP获取地理位置的代码(小偷程序)
Jun 09 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
php socket实现的聊天室代码分享
Aug 16 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 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
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python 深入理解yield
2008/09/06 Python
python k-近邻算法实例分享
2014/06/11 Python
利用python画出折线图
2018/07/26 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
python编写实现抽奖器
2020/09/10 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
Shell编程面试题
2016/05/29 面试题
物业管理应届生求职信
2013/10/28 职场文书
物业管理专业自荐信
2014/07/01 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
汶川大地震感悟
2015/08/10 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书