我是靠谱客的博主 清脆小伙,最近开发中收集的这篇文章主要介绍php的iterator迭代器,代码示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在学习的时候,发了php提供了iterator迭代器的接口,自己在本地跑了一下,代码如下:

<?php

class Account implements Iterator
{
    private $_names = ['Tom', 'Bill', 'Jason', 'Amy', 'Jenny'];
    private $_key = 0;//索引游标
    private $_step = 0;//执行步骤

    public function current()
    {
        $this->_step++;
        echo $this->_step . '步,current->获取当前值' . '<br>';
        return $this->_names[$this->_key];
    }

    public function next()
    {
        $this->_step++;
        echo $this->_step . '步,next->游标指向下一个' . '<br>';
        $this->_key++;
    }

    public function key()
    {
        $this->_step++;
        echo $this->_step . '步,key->获取当前键名' . '<br>';
        return $this->_key;
    }

    public function valid()
    {
        $this->_step++;
        echo $this->_step . '步,valid->判断是否有值' . '<br>';
        if (!isset($this->_names[$this->_key])) {
            echo '没有值了,key是' . $this->_key . '<br>';
        } else {
            echo '还有值,key是' . $this->_key . '<br>';
            return $this->_names[$this->_key];
        }
    }

    public function rewind()
    {
        $this->_step++;
        echo $this->_step . '步,rewind->游标归零' . '<br>';
        $this->_key = 0;
    }
}

$objAccount = new Account();
foreach ($objAccount as $key => $value) {
    echo 'foreach输出:key是' . $key . ' => ' . 'value是' . $value . '<br>';
}

结果如下:

1步,rewind->游标归零
2步,valid->判断是否有值
还有值,key是0
3步,current->获取当前值
4步,key->获取当前键名
foreach输出:key是0 => value是Tom
5步,next->游标指向下一个
6步,valid->判断是否有值
还有值,key是1
7步,current->获取当前值
8步,key->获取当前键名
foreach输出:key是1 => value是Bill
9步,next->游标指向下一个
10步,valid->判断是否有值
还有值,key是2
11步,current->获取当前值
12步,key->获取当前键名
foreach输出:key是2 => value是Jason
13步,next->游标指向下一个
14步,valid->判断是否有值
还有值,key是3
15步,current->获取当前值
16步,key->获取当前键名
foreach输出:key是3 => value是Amy
17步,next->游标指向下一个
18步,valid->判断是否有值
还有值,key是4
19步,current->获取当前值
20步,key->获取当前键名
foreach输出:key是4 => value是Jenny
21步,next->游标指向下一个
22步,valid->判断是否有值
没有值了,key是5

迭代器是个接口,引用该接口的类中,必须定义接口提供的方法。 

最后

以上就是清脆小伙为你收集整理的php的iterator迭代器,代码示例的全部内容,希望文章能够帮你解决php的iterator迭代器,代码示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部