查詢

AppendIterator::rewind()函式—用法及示例

「 將AppendIterator的迭代器指標重置到第一個迭代器的開頭 」


PHP函式名:AppendIterator::rewind()

函式描述:將AppendIterator的迭代器指標重置到第一個迭代器的開頭。

用法示例1:

$iter1 = new ArrayIterator(['a', 'b', 'c']);
$iter2 = new ArrayIterator(['x', 'y', 'z']);
$appendIter = new AppendIterator();
$appendIter->append($iter1);
$appendIter->append($iter2);

$appendIter->rewind();
while ($appendIter->valid()) {
    echo $appendIter->current() . " ";
    $appendIter->next();
}

// 輸出: a b c x y z

解釋示例1:上面的程式碼建立了兩個陣列迭代器,然後使用AppendIterator將它們合併到一個迭代器中。呼叫rewind()方法將迭代器指標重置到第一個迭代器的開頭,然後使用valid()方法檢查迭代器是否還有元素,使用current()方法獲取當前元素,使用next()方法將迭代器指標向後移動。最終,使用迴圈遍歷了所有的元素,並將它們輸出。

用法示例2:

class CustomIterator implements Iterator {
    private $position = 1;
    public function rewind() {
        $this->position = 1;
    }
    public function valid() {
        return $this->position <= 3;
    }
    public function current() {
        return $this->position;
    }
    public function key() {
        return $this->position;
    }
    public function next() {
        ++$this->position;
    }
}

$iter1 = new CustomIterator();
$iter2 = new ArrayIterator(['a', 'b', 'c']);
$appendIter = new AppendIterator();
$appendIter->append($iter1);
$appendIter->append($iter2);

$appendIter->rewind();
while ($appendIter->valid()) {
    echo $appendIter->current() . " ";
    $appendIter->next();
}

// 輸出: 1 2 3 a b c

解釋示例2:上面的程式碼建立了一個自定義的迭代器CustomIterator,它實現了Iterator介面的rewind()valid()current()key()next()方法。然後透過AppendIterator將自定義迭代器和陣列迭代器合併,呼叫rewind()方法將迭代器指標重置到第一個迭代器的開頭,再次使用迴圈遍歷了全部元素,並將它們輸出。

參考文件:PHP AppendIterator::rewind()

補充糾錯
上一個函式: AppendIterator::next()函式
下一個函式: AppendIterator::valid()函式
熱門PHP函式
分享連結