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 $_FILES函数详解
Mar 09 PHP
优化PHP程序的方法小结
Feb 23 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
PHP扩展开发入门教程
Feb 26 PHP
帝国cms常用标签汇总
Jul 06 PHP
windows下apache搭建php开发环境
Aug 27 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
PHP7变量处理机制修改
Mar 09 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如何解决网站大流量与高并发的问题
2011/06/25 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
js面向对象编程总结
2017/02/16 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
vue实例的选项总结
2020/06/09 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
详解django中自定义标签和过滤器
2017/07/03 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
面料业务员岗位职责
2013/12/26 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
汽车服务工程专业自荐信
2014/09/02 职场文书
个人简历求职信范文
2015/03/20 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS