SeekableIterator::seek()

在SeekableIterator迭代器中定位到指定位置

首字母:S

函数名: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()方法输出当前位置的键。

同首字母函数