(PHP 5 >= 5.3.0)
La clase SplObjectStorage proporciona un mapa a partir de objetos de datos o, ingorando datos, un conjunto de objetos. Este doble objetivo puede ser útil en muchos casos relacionados con la necesidad de identificar objetos de forma única.
Ejemplo #1 SplObjectStorage como un conjunto
<?php
// Como un conjunto 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 desde objetos a 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) }