函数名:SeekableIterator::seek()
适用版本:PHP 5 >= 5.1.0, PHP 7
用法:该函数用于在SeekableIterator迭代器中定位到指定位置。它将迭代器的内部指针移动到指定的位置。
语法:bool SeekableIterator::seek ( int $position )
参数:
- position:要定位的位置,必须是一个整数。
返回值:如果成功定位到指定位置,则返回true,否则返回false。
示例:
class MyIterator implements SeekableIterator {
private $data = array('A', 'B', 'C', 'D', 'E');
private $position = 0;
public function rewind() {
$this->position = 0;
}
public function current() {
return $this->data[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
++$this->position;
}
public function valid() {
return isset($this->data[$this->position]);
}
public function seek($position) {
if (!isset($this->data[$position])) {
throw new OutOfBoundsException("Invalid position");
}
$this->position = $position;
}
}
$iterator = new MyIterator();
$iterator->seek(2); // 定位到位置2
echo $iterator->current(); // 输出C
echo $iterator->key(); // 输出2
$iterator->seek(4); // 定位到位置4
echo $iterator->current(); // 输出E
echo $iterator->key(); // 输出4
以上示例中,我们定义了一个实现了SeekableIterator接口的自定义迭代器类MyIterator。在该类中,我们实现了必要的方法,包括seek()方法。在示例中,我们创建了一个MyIterator对象,并使用seek()方法来定位到指定位置。然后,我们通过current()方法输出当前位置的值,通过key()方法输出当前位置的键。