L'interface SeekableIterator

(PHP 5 >= 5.1.0)

Introduction

L'itérateur SeekableIterator.

Sommaire de l'Interface

SeekableIterator extends Iterator {
/* Méthodes */
abstract public void seek ( int $position )
/* Méthodes héritées */
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 )
}

Exemple #1 Utilisation simple

<?php
class MySeekableIterator implements SeekableIterator {

	private $position;

	private $array = array(
		"premier élément",
		"second élément",
		"troisième élément",
		"quatriéme élément"
	);

	/* Méthode requis pour l'interface SeekableIterator */

	public function seek($position) {
	  if (!isset($this->array[$position]) {
		  throw new OutOfBoundsException("position invalide ($position)");
	  }

	  $this->position = $position;
	}

	/* Méthodes requises par l'interface Iterator */
	
	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();
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

premier élément
troisième élément
second élément
position invalide (10)

Sommaire

LoadingChargement en cours