在线文档教程
PHP

SeekableIterator (interface)

The SeekableIterator interface

Introduction

(PHP 5 >= 5.1.0, PHP 7)

The Seekable iterator.

Interface synopsis

SeekableIterator extends Iterator {

/* Methods */

abstract public void seek ( int $position )

/* Inherited methods */

abstract public mixed Iterator::current ( void )

abstract public scalar Iterator::key ( void )

abstract public void Iterator::next ( void )

abstract public void Iterator::rewind ( void )

abstract public boolean Iterator::valid ( void )

}

Example #1 Basic usage

This example demonstrates creating a custom SeekableIterator, seeking to a position and handling an invalid position.

<?php class MySeekableIterator implements SeekableIterator {     private $position;     private $array = array(         "first element",         "second element",         "third element",         "fourth element"          /* Method required for SeekableIterator interface */     public function seek($position) {       if (!isset($this->array[$position])) {           throw new OutOfBoundsException("invalid seek position ($position)"       }       $this->position = $position;     }     /* Methods required for Iterator interface */          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]     } } try {     $it = new MySeekableIterator;     echo $it->current(), "\n";          $it->seek(2     echo $it->current(), "\n";          $it->seek(1     echo $it->current(), "\n";          $it->seek(10      } catch (OutOfBoundsException $e) {     echo $e->getMessage( } ?>

The above example will output something similar to:

first element third element second element invalid seek position (10)

Table of Contents

← RecursiveIterator::hasChildren

SeekableIterator::seek →

© 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

https://secure.php.net/manual/en/class.seekableiterator.php