【问题标题】:Understanding OuterIterator Interface PHP了解 OuterIterator 接口 PHP
【发布时间】:2013-02-17 10:01:40
【问题描述】:

我正在尝试在我的类上实现OuterIterator 接口,但我不确定在方法getInnerIterator 中使用什么。我知道它应该返回一个迭代器,但我不明白在什么情况下它应该返回一个InnerIterator,虽然它已经拥有迭代器接口的所有方法,那么为什么它需要一个InnerIterator

OuterIterator 我完全迷失了

class myouterIterator implements OuterIterator 
{
    /**
    * Returns the inner Iterator for the current entry
    */
    public $data = array(1,2,3,4,5,6,7,8,9,10);
    public $position = 0;
    public function getInnerIterator()
    {
        // What code should be place here
    }
    public function rewind()
    {
        $this->position = 0;
    }
    public function valid()
    {
        return isset($this->data[$this->position]);
    }
    public function key()
    {
        return $this->position;
    }
    public function current()
    {
        return $this->data[$this->position];
    }
    public function next()
    {
        ++$this->position;
    }
}   

$OuterIt = new myouterIterator();
foreach($OuterIt as $key => $value)
{
    echo $key, ' ', $value, '<br>';

}

【问题讨论】:

    标签: php iterator spl


    【解决方案1】:

    你为什么要实现OuterIterator?它旨在“迭代迭代器”,但您的示例只是迭代标量值,为它们中的每一个都有一个迭代器是没有意义的。

    如果您想查看OuterIterator 接口的实际示例,请查看AppendIterator,它连续迭代多个迭代器。

    【讨论】:

      猜你喜欢
      • 2010-11-05
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 2018-12-09
      • 2014-11-21
      • 2013-02-08
      • 2021-02-04
      相关资源
      最近更新 更多