NoRewindIterator 类

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

介绍

此迭代器忽略倒带操作。这允许在多个部分 foreach 循环中处理迭代器。

类概要

class NoRewindIterator extends IteratorIterator {
/* 方法 */
public __construct(Iterator $iterator)
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
/* 继承方法 */
}

目录

添加备注

用户贡献的备注 1 备注

7
匿名
4 年前
顾名思义,NoRewindIterator 在到达迭代器末尾时不会调用“rewind”方法。

让我们通过两个示例来演示它。

在这个例子中,当“foreach”到达末尾时,“rewind”方法会被调用,所以,我们可以根据需要重复打印相同的值。

<?PHP
$iterator
= new ArrayIterator(['PHP', 'Python', 'Go']);

foreach (
$iterator as $item) {
echo
$item.PHP_EOL;
}

foreach (
$iterator as $item) {
echo
$item.PHP_EOL;
}
?>

通过使用 NoRewindIterator,“rewind”不会被调用,所以,我们不能像在前面的例子中那样做。

<?PHP
$iterator
= new ArrayIterator(['PHP', 'Python', 'Go']);
$iterator = new NoRewindIterator($iterator);

foreach (
$iterator as $item) {
echo
$item.PHP_EOL;
}

// 不会做任何事情
foreach ($iterator as $item) {
echo
$item.PHP_EOL;
}

?>
To Top