小编sun*_*ght的帖子

如何通过 foreach 迭代对象时调用 Iterator 方法

我浏览了Iterator并明白了为什么应该使用它,但我没有明白的是迭代器类的方法如何在通过 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]);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里我想了解一下当我使用 foreach 时的情况,如下所示。

myIterator类的方法如何自动调用?

$it = new myIterator;

foreach($it as $key …
Run Code Online (Sandbox Code Playgroud)

php iterator

5
推荐指数
1
解决办法
1008
查看次数

标签 统计

iterator ×1

php ×1