(PHP 5 >= 5.3.0)
La clase SplObjectStorage proporciona un mapa a partir de objetos de datos, o datos ignorados de un grupo de objetos. Este doble objetivo puede ser útil en muchos casos relacionados con la necesidad de identificar de forma única los objetos.
Ejemplo #1 SplObjectStorage como un grupo
<?php
// Como un grupo de objetos
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;
$s->attach($o1);
$s->attach($o2);
var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
$s->detach($o2);
var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>
El resultado del ejemplo sería:
bool(true) bool(true) bool(false) bool(true) bool(false) bool(false)
Ejemplo #2 SplObjectStorage como un mapa
<?php
// Como un mapa de objetos de datos
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;
$s[$o1] = "data for object 1";
$s[$o2] = array(1,2,3);
if (isset($s[$o2])) {
var_dump($s[$o2]);
}
?>
El resultado del ejemplo sería:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }