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 空格,换行,跳格使用说明
Dec 18 PHP
php下封装较好的数字分页方法
Nov 23 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
php实现mysql封装类示例
May 07 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
通过php动态传数据到highcharts
Apr 05 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 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
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
php单例模式示例分享
2015/02/12 PHP
ThinkPHP控制器详解
2015/07/27 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
为python设置socket代理的方法
2015/01/14 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
python实现最小二乘法线性拟合
2019/07/19 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
10张动图学会python循环与递归问题
2021/02/06 Python
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
任课老师推荐信范文
2013/11/24 职场文书
演讲稿格式范文
2014/05/19 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
python 批量压缩图片的脚本
2021/06/02 Python
用Python生成会跳舞的美女
2022/01/18 Python