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和ACCESS写聊天室(五)
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
开源SNS系统-ThinkSNS
May 18 PHP
PHP迅雷、快车、旋风下载专用链转换代码
Jun 15 PHP
深入PHP autoload机制的详解
Jun 09 PHP
php获取新浪微博数据API实例
Nov 12 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
PHP实现文件上传后台处理脚本
Mar 04 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
Prototype String对象 学习
2009/07/19 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
Node.js中child_process实现多进程
2015/02/03 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
vue实现计算器功能
2020/02/22 Javascript
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
Python实现的建造者模式示例
2018/08/06 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
加入学生会演讲稿
2014/04/24 职场文书
入党综合考察材料
2014/06/02 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python