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()
方法將迭代器指標重置到第一個迭代器的開頭,再次使用迴圈遍歷了全部元素,並將它們輸出。