NoRewindIterator::valid() 函数用于检查当前迭代器位置是否有效。
用法:
bool NoRewindIterator::valid ( void )
参数: 该函数不接受任何参数。
返回值: 如果当前迭代器位置有效,则返回 true,否则返回 false。
示例:
$array = ['apple', 'banana', 'cherry'];
$iterator = new ArrayIterator($array);
$noRewindIterator = new NoRewindIterator($iterator);
// 初始位置有效,因为迭代器未开始迭代
var_dump($noRewindIterator->valid()); // 输出: bool(true)
// 移动到下一个位置
$noRewindIterator->next();
// 判断当前位置是否有效
var_dump($noRewindIterator->valid()); // 输出: bool(true)
// 移动到迭代器末尾
$noRewindIterator->next();
$noRewindIterator->next();
// 判断当前位置是否有效
var_dump($noRewindIterator->valid()); // 输出: bool(false)
在上面的示例中,我们创建了一个数组迭代器 $iterator
,然后用它来初始化一个 NoRewindIterator
对象 $noRewindIterator
。初始位置有效,因为迭代器未开始迭代。通过调用 next()
方法,我们将迭代器移动到下一个位置,再次调用 valid()
方法,仍然返回 true。最后,我们通过连续调用 next()
方法将迭代器移动到末尾,再次调用 valid()
方法,返回 false,表示当前迭代器位置无效。