php-迭代器

  说明:就像for和foreach一样实现迭代的功能。继承迭代器接口,就可以编写自定义的迭代器,其中定义的每个方法都有其意义

       下面的demo只是实现了最简单的循环功能,如果实际业务中有更复杂的场景,也是可以胜任的

php
class myIterator implements Iterator 
{
    private $arr;
    public function __construct($arr) 
    {
        $this->arr = $arr;
    }
    function rewind() {         #用于初始化,这个方法无论循环几次只运行一次
        echo 'begin
'; } function current() { #该方法返回值作为value return current($this->arr); } function key() { #该方法返回值作为key return key($this->arr); } function next() { #在每一次循环结束时执行该方法,用于转接下一次循环,可以随便做点什么 next($this->arr); return true; } function valid() { #用于验证,该方法如果返回为false则退出循环 $vaild = current($this->arr) === false ? false : true; return $vaild; } } $arr = ['a', 'b', 'c']; $it = new myIterator($arr); foreach($it as $key => $value) { echo $key . '_' . $value . ' '; } //结果:begin 0_a 1_b 2_c ?>

 

你可能感兴趣的:(php-迭代器)