函数名称:Iterator::valid()
适用版本:PHP 5 >= 5.1.0, PHP 7
函数描述:该函数用于检查迭代器中的当前位置是否有效。
用法:
bool Iterator::valid ( void )
参数: 该函数没有任何参数。
返回值: 该函数返回一个布尔值,如果当前位置有效则返回true,否则返回false。
示例:
class MyIterator implements Iterator {
private $position = 0;
private $array = array(
"first element",
"second element",
"third element",
);
public function __construct() {
$this->position = 0;
}
public function rewind() {
$this->position = 0;
}
public function current() {
return $this->array[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
++$this->position;
}
public function valid() {
return isset($this->array[$this->position]);
}
}
$it = new MyIterator;
foreach($it as $key => $value) {
echo "$key: $value\n";
}
输出结果:
0: first element
1: second element
2: third element
在示例中,我们创建了一个自定义迭代器类MyIterator
,实现了Iterator
接口的所有方法。在valid()
方法中,我们使用isset()
函数检查当前位置是否在数组范围内。如果当前位置有效,valid()
方法返回true
,否则返回false
。在foreach
循环中,我们使用valid()
方法来判断迭代器是否还有有效的元素,如果有,则输出键和值。