Iterator模式的PHP实现

来源:互联网 发布:java难点 编辑:程序博客网 时间:2024/06/05 19:35

Interator接口的作用是允许对象以自己的方式迭代内部的数据,从而使它可以被循环访问

class test implements Iterator {

    《定义要进行迭代的数组》
    private $item = array (1, 2, 3, 4, 5 );
    返回当前元素
    public function current() {
        return current ( $this->item );
    }
    《返回当前元素的键》
    public function key() {
        return key ( $this->item );
    }
    《向前移动到下一个元素》 
    public function next() {
        return next ( $this->item );
    }
    《返回到迭代器的第一个元素》
    public function rewind() {
        reset ( $this->item );
    }
    《检查当前位置是否有效》
    public function valid() {
        return ($this->current () !== false);
    }

}

当执行valid返回false时,循环就此结束。

$iterator = new test ();
foreach ( $iterator as $key => $value ) {
    echo "输出索引为{$key}的元素" . ":$value" . '<br><br>';
}

end() - 将数组的内部指针指向最后一个单元
key() - 从关联数组中取得键名
each() - 返回数组中当前的键/值对并将数组指针向前移动一步
prev() - 将数组的内部指针倒回一位
reset() - 将数组的内部指针指向第一个单元
next() - 将数组中的内部指针向前移动一位