PHP函数:FilterIterator::valid()
适用版本:PHP 5 >= 5.1.0, PHP 7
函数用途:该函数用于检查迭代器的当前元素是否有效。
语法:public FilterIterator::valid ( void ) : bool
参数:无参数
返回值:如果当前元素有效,则返回true,否则返回false。
示例:
current() > 0); } } $numbers = new ArrayIterator([1, -2, 3, -4, 5]); $filter = new MyFilter($numbers); foreach ($filter as $number) { echo $number . "\n"; } if ($filter->valid()) { echo "当前元素有效\n"; } else { echo "当前元素无效\n"; } ?>输出: 1 3 5 当前元素无效
解释: 在上面的示例中,我们定义了一个自定义的过滤器类MyFilter,继承自FilterIterator。在accept()方法中,我们通过判断当前元素是否大于0来决定其有效性。然后我们创建了一个ArrayIterator对象$numbers,并将其传递给MyFilter类的实例$filter。在foreach循环中,$filter将会过滤掉所有小于等于0的元素,只输出大于0的元素。最后,我们使用$filter->valid()来检查当前元素是否有效,如果无效则输出"当前元素无效"。由于最后一个元素是-4,所以当前元素无效。