• 技术文章 >后端开发 >php教程

    【php预定义接口】迭代器

    不言不言2018-04-14 09:04:48原创680

    本篇文章分享的内容是【php预定义接口】迭代器,现在分享给大家,有需要的朋友可以参考一下本篇文章的内容

    Iterator(迭代器)接口

    简介 :可在内部迭代自己的外部迭代器或类的接口。

    具体作用解释

    接口摘要 :

    Iterator extends Traversable {    /* 方法 */
        abstract public mixed current ( void )    abstract public scalar key ( void )    abstract public void next ( void )    abstract public void rewind ( void )    abstract public bool valid ( void )
    }

    范例:

    Example #1 基本用法(使用 foreach 时,迭代器方法的调用顺序)<?phpclass myIterator implements Iterator {
        private $position = 0;    private $array = array(        "firstelement",        "secondelement",        "lastelement",
        );  
    
        public function __construct() {
            $this->position = 0;
        }    function rewind() {
            var_dump(__METHOD__);        $this->position = 0;
        }    function current() {
            var_dump(__METHOD__);        return $this->array[$this->position];
        }    function key() {
            var_dump(__METHOD__);        return $this->position;
        }    function next() {
            var_dump(__METHOD__);
            ++$this->position;
        }    function valid() {
            var_dump(__METHOD__);        return isset($this->array[$this->position]);
        }
    }$it = new myIterator;foreach($it as $key => $value) {
        var_dump($key, $value);    echo "\n";
    }1.rewind -> valid -> current -> key 
    2.next -> valid -> current -> key3.next -> valid -> current -> key4.next -> valid?>

    Iterator(迭代器)接口

    简介 :可在内部迭代自己的外部迭代器或类的接口。

    具体作用解释

    接口摘要 :

    Iterator extends Traversable {    /* 方法 */
        abstract public mixed current ( void )    abstract public scalar key ( void )    abstract public void next ( void )    abstract public void rewind ( void )    abstract public bool valid ( void )
    }

    范例:

    Example #1 基本用法(使用 foreach 时,迭代器方法的调用顺序)<?phpclass myIterator implements Iterator {
        private $position = 0;    private $array = array(        "firstelement",        "secondelement",        "lastelement",
        );  
    
        public function __construct() {
            $this->position = 0;
        }    function rewind() {
            var_dump(__METHOD__);        $this->position = 0;
        }    function current() {
            var_dump(__METHOD__);        return $this->array[$this->position];
        }    function key() {
            var_dump(__METHOD__);        return $this->position;
        }    function next() {
            var_dump(__METHOD__);
            ++$this->position;
        }    function valid() {
            var_dump(__METHOD__);        return isset($this->array[$this->position]);
        }
    }$it = new myIterator;foreach($it as $key => $value) {
        var_dump($key, $value);    echo "\n";
    }1.rewind -> valid -> current -> key 
    2.next -> valid -> current -> key3.next -> valid -> current -> key4.next -> valid?>

    相关推荐:

    PHP预定义变量详解

    php预定义变量方法

    以上就是【php预定义接口】迭代器的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 迭代 接口
    上一篇:PHP数据库基于PDO操作类(mysql) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 浅析PHP中的类自动加载相关文件• 系统讲解PHP缓存技术• 一文理解和实现现代PHP框架里的IOC容器• 深入了解PHP:用gdb调试源码• 实例介绍:使用Docker快速搭建多版本PHP开发环境
    1/1

    PHP中文网