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
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
php中hashtable实现示例分享
Feb 13 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 PHP
PHP解决高并发的优化方案实例
Dec 10 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缓存技术详细总结
2013/08/07 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python2随机数列生成器简单实例
2017/09/04 Python
Python扩展内置类型详解
2018/03/26 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
python实现转圈打印矩阵
2019/03/02 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
编程输出如下图形
2013/11/24 面试题
美术师范毕业生自荐信
2013/11/16 职场文书
如何写求职信
2014/05/24 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
个人债务授权委托书
2014/10/17 职场文书
2014年体育部工作总结
2014/11/13 职场文书
助学感谢信范文
2015/01/21 职场文书
何玥事迹观后感
2015/06/16 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
redis复制有可能碰到的问题汇总
2022/04/03 Redis