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

admin3年前PHP教程42

说明

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聚合式迭代器是什么内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

深度学习类型的GPU服务器如何选择租用新加坡显卡服务器怎么购买

一、GPU服务器有什么作用?众所周知GPU加速计算可以提高应用程序的性能,可以把应用程序计算密集部分的工作负载转移到GPU,而CPU则运行其余程序代码,从用户的角度来看,应用程序的运行速度明显加快。我...

韩国高防服务器购买方法主要看哪些方面

韩国高防服务器购买方法主要看哪些方面?购买韩国高防服务器的方法可以分为以下几步:确定需求:首先需要确定自己的需求,包括需要租用多少服务器、需要防御什么类型的攻击、需要的网络带宽等等。确定预算:根据自己...

PHP的bz2压缩扩展工具详解

在日常的开发和电脑使用中,我们经常会接触到压缩和解压的一些工具,PHP 也为我们准备了很多相关的操作扩展包,都有直接可用的函数能够方便的操作一些压缩解压功能。安装扩展这个扩展的安装需要系统有 bzip...

php的对象传值与引用传值代码实例讲解

变量赋值与对象赋值对比<?php   // 声明一个变量并赋值   $a = 1;   // 将数据类型的值 赋值 给一个变量 &nb...

php7 没有phpize的解决方法

本文操作环境:ubuntu 16.04系统、PHP7.0版、DELL G3电脑php7 没有phpize怎么办?ubuntu服务器下php7没有phpize文件解决方案第一种:?1sudo vim /...

thinkphp5.1 中使用自定义异常处理类进行接管

配置文件修改config/app.php自定义异常接管类出处'exception_handle' => ‘\app\common\exception\Exceptio...