La classe SplFixedArray

(PHP 5 >= 5.3.0)

Introduction

La classe SplFixedArray fournit les fonctionnalités principales d'un tableau. La différence majeure entre un objet SplFixedArray et un tableau standard de PHP est que SplFixedArray est de taille fixe, et n'utilise que des entier dans ses index. L'avantage est alors qu'il est plus rapide que les tableaux.

Synopsis de la classe

SplFixedArray implements Iterator , ArrayAccess , Countable {
/* Méthodes */
public __construct ([ int $size = 0 ] )
public int count ( void )
public mixed current ( void )
public static SplFixedArray fromArray ( array $array [, bool $save_indexes = true ] )
public int getSize ( void )
public int key ( void )
public void next ( void )
public bool offsetExists ( int $index )
public mixed offsetGet ( int $index )
public void offsetSet ( int $index , mixed $newval )
public void offsetUnset ( int $index )
public void rewind ( void )
public int setSize ( int $size )
public array toArray ( void )
public bool valid ( void )
public void __wakeup ( void )
}

Exemples

Exemple #1 Exemple avec SplFixedArray

<?php
// Initialisation d'un tableau avec une taille fixe
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

var_dump($array[0]); // NULL
var_dump($array[1]); // int(2)

var_dump($array["4"]); // string(3) "foo"

// Augmentation de la taille à 10
$array->setSize(10);

$array[9] = "asdf";

// Réduction de taille de 2
$array->setSize(2);

// Les lignes suivantes émettent une RuntimeException : index invalide ou hors de l'intervalle
try {
	var_dump($array["non-numeric"]);
} catch(RuntimeException $re) {
	echo "RuntimeException : ".$re->getMessage()."\n";
}

try {
	var_dump($array[-1]);
} catch(RuntimeException $re) {
	echo "RuntimeException : ".$re->getMessage()."\n";
}

try {
	var_dump($array[5]);
} catch(RuntimeException $re) {
	echo "RuntimeException : ".$re->getMessage()."\n";
}
?>

L'exemple ci-dessus va afficher :

NULL
int(2)
string(3) "foo"
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range

Sommaire

LoadingChargement en cours