加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP的Iterator接口用法指什么,方法列表有哪些?

发布时间:2023-06-06 13:34:59 所属栏目:PHP教程 来源:
导读:这篇文章给大家介绍了“PHP的Iterator接口用法是什么,方法列表有哪些?”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。
这篇文章给大家介绍了“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 boolean valid ( void )
 
}
 
预定义迭代器
 
PHP 已经提供了一些用于日常任务的迭代器,如SPL迭代器。
 
范例
 
Example #1 基本用法
 
这个例子展示了使用 foreach 时,迭代器方法的调用顺序。
 
<?php
 
    class 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";
 
    }
 
?>
 
以上例程的输出类似于:
 
string(18) "myIterator::rewind"
 
string(17) "myIterator::valid"
 
string(19) "myIterator::current"
 
string(15) "myIterator::key"
 
int(0)
 
string(12) "firstelement"
 
string(16) "myIterator::next"
 
string(17) "myIterator::valid"
 
string(19) "myIterator::current"
 
string(15) "myIterator::key"
 
int(1)
 
string(13) "secondelement"
 
string(16) "myIterator::next"
 
string(17) "myIterator::valid"
 
string(19) "myIterator::current"
 
string(15) "myIterator::key"
 
int(2)
 
string(11) "lastelement"
 
string(16) "myIterator::next"
 
string(17) "myIterator::valid"
 
方法列表
 
Iterator::current — 返回当前元素
 
Iterator::key — 返回当前元素的键
 
Iterator::next — 向前移动到下一个元素
 
Iterator::rewind — 返回到迭代器的第一个元素
 
Iterator::valid — 检查当前位置是否有效
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!