5

クラスにインターフェイスを実装しようとしてOuterIteratorいますが、メソッドで何を使用すればよいかわかりませんgetInnerIteratorInnerIteratorIterator を返す必要があることはわかっていますが、 Iterator インターフェイスのすべてのメソッドが既にあるにもかかわらず、どのような状況で を返す必要があるの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>';

}
4

1 に答える 1

3

なぜあなたOuterIteratorはまったく実装したいのですか?「イテレータを反復する」ことを目的としていますが、あなたの例はスカラー値を反復するだけで、それぞれにイテレータを使用しても意味がありません。

OuterIteratorインターフェイスの実用的な例を見たい場合は、AppendIteratorいくつかのイテレータを連続して反復する を見てください。

于 2013-02-17T10:23:44.173 に答える