English | 简体中文 | 繁體中文
查询

RecursiveIteratorIterator::valid()函数—用法及示例

「 检查当前迭代器位置是否有效 」


函数名称:RecursiveIteratorIterator::valid()

适用版本:PHP 5 >= 5.1.0, PHP 7

函数描述:该函数用于检查当前迭代器位置是否有效。

用法:

bool RecursiveIteratorIterator::valid ( void )

参数: 该函数没有参数。

返回值: 如果当前迭代器位置有效,则返回true;否则返回false。

示例:

class MyRecursiveIterator extends RecursiveArrayIterator {
    public function valid() {
        // 自定义实现valid()方法
        // 在这里可以添加额外的判断条件
        return parent::valid() && $this->current() != 'skip';
    }
}

$array = array(
    'fruit' => array('apple', 'banana', 'cherry'),
    'veggie' => array('carrot', 'pea', 'broccoli')
);

$iterator = new RecursiveIteratorIterator(new MyRecursiveIterator($array));

foreach ($iterator as $key => $value) {
    if ($iterator->valid()) {
        echo $key . ': ' . $value . PHP_EOL;
    }
}

输出:

fruit: apple
fruit: banana
fruit: cherry
veggie: carrot
veggie: pea
veggie: broccoli

在上面的示例中,我们自定义了一个继承自RecursiveArrayIterator的MyRecursiveIterator类,并重写了valid()方法。在valid()方法中,我们添加了额外的判断条件,即当前元素不等于'skip'时才认为当前位置有效。

然后,我们创建了一个RecursiveIteratorIterator对象,将MyRecursiveIterator对象作为参数传入。然后使用foreach循环遍历迭代器,并在每个有效的位置输出键名和对应的值。

注意:需要注意的是,valid()方法在每次迭代之前被调用,以检查当前位置是否有效。

补充纠错
热门PHP函数
分享链接