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 md5下16位和32位的实现代码
Apr 09 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
php强制下载文件函数
Aug 24 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中把stdClass Object转array的几个方法
2014/05/08 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
基于jquery实现多级菜单效果
2017/07/25 jQuery
vue axios 二次封装的示例代码
2017/12/08 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
python 实现多线程下载视频的代码
2019/11/15 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
appium+python adb常用命令分享
2020/03/06 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
python和go语言的区别是什么
2020/07/20 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
高级Java程序员面试要点
2013/08/02 面试题
事务机电主管工作职责
2014/02/25 职场文书
高考升学宴答谢词
2015/01/20 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server