dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1148|回复: 0

[功能实现] php迭代器

[复制链接]
  • TA的每日心情

    2024-11-19 20:46
  • 签到天数: 244 天

    [LV.8]以坛为家I

    4434

    主题

    1459

    帖子

    1万

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    10734
    发表于 2019-11-7 07:00:00 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    implements Iterator , 实现Iterator 的 current(); next(); key(); valid(); rewind();
    [PHP] 纯文本查看 复制代码
    <?php
    /*
     *先定义一个数组
     *定义第一个位置 $position = 0
     *然后返回key 和value,
     *指向下一个位置 ++$position
     */  
    class myIterator implements Iterator{
            //先定义一个位置
            private $position  = 0;
            private $array;
    
            public function __construct(array $array){
                $this->array = $array;
            }
            /**
             * 倒带第一个元素的迭代器
             * @return void 任何返回值将被忽略.
             */
            public function rewind(){
                var_dump(__METHOD__);
                $this->position = 0;
            }
            /**
             * 检查当前位置是有效的
             * @return boolean 返回值将bool型布尔,然后评估
             */
            public function valid(){
                var_dump(__METHOD__);
                //判断数组第一个元素是否存在
                return isset($this->array[$this->position]);
            }
            /**
             * 返回当前元素
             * @return mixed 可以返回任何类型。
             */
            public function current(){
                var_dump(__METHOD__);
                //返回数组的第一个元素
                return $this->array[$this->position];
            }
            /**
             * 返回当前元素的关键
             * @return mixed 标量成功,或null失败
             */
            public function key(){
                var_dump(__METHOD__);
                //返回数组第一个元素的key
                return $this->position;
            }
            /**
             * 前进到下一个元素
             * @return void 任何返回值将被忽略。
             */
            public function next(){
                var_dump(__METHOD__);
                ++ $this->position;
            }
        }
    
    $array=[
            "firstelement",
            "secondeleent",
            "lastelement"
        ];
    
    $it = new myIterator($array);
    foreach ($it as $key=>$value) {
        echo $key.' => '.$value;
        echo "<br>";
    }


    执行结果:

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-23 17:00 , Processed in 0.078309 second(s), 33 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表