PHP Portal » PHP Handbuch » The SeekableIterator interface

Werbung

The SeekableIterator interface


Einführung

The Seekable iterator.

Interface-Übersicht

SeekableIterator
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 )
}

Beispiel #1 Basic usage

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

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class MySeekableIterator implements SeekableIterator { private $position = 0; private $array = array( "first element", "second element", "third element", "fourth element" ); public function seek($position) { $this->position = $position; if (!$this->valid()) { throw new OutOfBoundsException("invalid seek position($position)"); } } /* Methods required for Iterator interface */ 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]); } } 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(); }

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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

Inhaltsverzeichnis