php聚合式迭代器的基础知识点及实例代码

 更新时间:2021年07月04日 11:50:30   作者:小妮浅浅  
在本篇文章里小编给大家整理的是一篇关于php聚合式迭代器的基础知识点及实例代码,有兴趣的朋友们可以学习参考下。

说明

1、实现其他迭代器功能的接口,相当于在其他迭代器上安装一个外壳,只有一种方法。

2、聚合迭代器可以与许多迭代器结合,实现更高效的迭代。

实例

class MainIterator implements Iterator
{
    private $var = array();
    public function __construct($array)    //构造函数, 初始化对象数组
    {
        if (is_array($array)) {
        $this->var = $array;
        }
    }
 
    public function rewind() {   
        echo "rewinding\n";
        reset($this->var);    //将数组的内部指针指向第一个单元
    }
 
    public function current() {
        $var = current($this->var);    // 返回数组中的当前值
        echo "current: $var\n";
        return $var;
    }
 
    public function key() {
        $var = key($this->var);       //返回数组中内部指针指向的当前单元的键名
        echo "key: $var\n";
        return $var;
    }
 
    public function next() {
        $var = next($this->var);     //返回数组内部指针指向的下一个单元的值
        echo "next: $var\n";
        return $var;
    }
 
    public function valid() {
    return !is_null(key($this->var); //判断当前单元的键是否为空
    }
}

内容扩展:

<?php
class myData implements IteratorAggregate {
    public $property1 = "Public property one";
    public $property2 = "Public property two";
    public $property3 = "Public property three";

    public function __construct() {
        $this->property4 = "last property";
    }

    public function getIterator() {
        return new ArrayIterator($this);
    }
}

$obj = new myData;

foreach($obj as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

以上例程的输出类似于:

string(9) "property1"
string(19) "Public property one"

string(9) "property2"
string(19) "Public property two"

string(9) "property3"
string(21) "Public property three"

string(9) "property4"
string(13) "last property"

到此这篇关于php聚合式迭代器的基础知识点及实例代码的文章就介绍到这了,更多相关php聚合式迭代器是什么内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Yii2设置默认控制器的两种方法

    Yii2设置默认控制器的两种方法

    安装好Yii2后,Yii2的默认的控制器是SiteController,新建Modules的时候默认的控制器是DefaultController.如果开发和路由需要修改成其他控制器为默认的控制器的话。下面这篇文章主要给大家介绍了关于Yii2设置默认控制器的两种方法,需要的朋友可以参考下。
    2017-05-05
  • php文件后缀不强制为.php的实操方法

    php文件后缀不强制为.php的实操方法

    在本篇文章里小编给大家整理的是一篇关于php文件后缀不强制为.php的实操方法,有需要的朋友们参考下。
    2019-09-09
  • 学习php过程中的一些注意点的总结

    学习php过程中的一些注意点的总结

    在学习php的过程中会有一些细节是需要注意的,本文整理了一些比较实际的问题,希望对大家有所帮助
    2013-10-10
  • php max_execution_time执行时间问题

    php max_execution_time执行时间问题

    大部分PHP代码执行时间都不会很久。但是有些时候,比如等待图片上传,可能执行时间过长导致超时。
    2011-07-07
  • PHP模拟asp.net的StringBuilder类实现方法

    PHP模拟asp.net的StringBuilder类实现方法

    这篇文章主要介绍了PHP模拟asp.net的StringBuilder类实现方法,较为简单的模拟了StringBuilder类针对文本的基本操作技巧,需要的朋友可以参考下
    2015-08-08
  • php常用hash加密函数

    php常用hash加密函数

    这篇文章主要介绍了php常用hash加密函数,以实例形式详细分析了PHP的hash加密函数用法,代码中备有详尽的注释,便于理解,需要的朋友可以参考下
    2014-11-11
  • 详解PHP 7.4 中数组延展操作符语法知识点

    详解PHP 7.4 中数组延展操作符语法知识点

    在本篇文章里小编给各位整理的是关于PHP 7.4 中数组延展操作符语法知识点内容,需要的朋友们参考学习下。
    2019-07-07
  • php上传图片到指定位置路径保存到数据库的具体实现

    php上传图片到指定位置路径保存到数据库的具体实现

    本文为大家介绍下php上传图片到指定位置路径保存到数据库的具体实现,感兴趣的朋友不要错过
    2013-12-12
  • PHP实现对文件锁进行加锁、解锁操作的方法

    PHP实现对文件锁进行加锁、解锁操作的方法

    这篇文章主要介绍了PHP实现对文件锁进行加锁、解锁操作的方法,结合实例形式分析了PHP针对文件进行加锁、解锁操作的功能、实现方法与相关注意事项,需要的朋友可以参考下
    2017-07-07
  • PHP进程间通信的几种方法详解

    PHP进程间通信的几种方法详解

    PHP是用C编写的,因此它对系统底层API的操作与C很像,同大多数语言一样,PHP进程间通信的方式有以下几种:消息队列,管道,共享内存,socket和信号,本文是对这几种通信方式对整理
    2023-06-06

最新评论