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

admin3年前PHP教程56

说明

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

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

相关文章

laravel日志优化实例讲解

日志浏览扩展地址:arcanedev/log-viewer安装扩展composer require arcanedev/log-viewer注册服务,在config/app.php中的provider...

php操作ElasticSearch搜索引擎流程详解

目录一、安装二、使用三、新建ES数据库四、创建表五、插入数据六、 查询所有数据七、查询单条数据八、搜索九、测试代码〝 古人学问遗无力,少壮功夫老始成 〞如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥...

济南高防服务器被入侵如何防御

济南高防服务器被入侵如何防御?济南高防服务器被入侵可能是由于漏洞、弱密码或恶意代码等因素引起的。以下是一些可以采取的措施来防御高防服务器被入侵:及时更新补丁:定期更新服务器的操作系统、应用程序和补丁程...

防火墙服务器有哪些特性?租用泉州电信高防服务器地址是多少?

防火墙服务器版是一款基于Windows2003的防火墙,采用最新的微软安全认证标准。它集成了目前市场上主流的安全产品功能,并针对中小企业的特点进行了优化和改进。该产品的最大亮点在于能够实现对局域网内所...

什么是独立GPU显卡服务器?新加坡GPU服务器能干什么?

什么是独立GPU显卡服务器?独立GPU,也称为显卡,是一种独立的处理单元,具有专用的卡和内存。只需将卡插入主板上靠近CPU的扩展槽,即可轻松更换或升级。它旨在处理更复杂的图形处理,并提供比集成GPU更...

如何使用SublimeText3配置 PHP IDE环境

首先是安装好PHP之后配置环境变量然后在cmd中输入php -v 能看到版本号即为配置好了之后在sublime中新建编译系统,输入代码{"cmd": ["php"...