La clase SplObjectStorage
(PHP 5 >= 5.3.0)
Introducción
La clase SplObjectStorage proporciona un mapa a partir de objetos de datos o, ignorando datos, un conjunto de objetos. Este doble objetivo puede ser útil en muchos casos relacionados con la necesidad de identificar objetos de forma única.
Sinopsis de la Clase
/* Métodos */
}Ejemplos
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)
}
Tabla de contenidos
- SplObjectStorage::addAll — Agrega todos los objetos de otro almacenamiento
- SplObjectStorage::attach — Agrega un objeto en el almacenamiento
- SplObjectStorage::contains — Comprueba si el almacenamiento contiene un objeto específico
- SplObjectStorage::count — Devuelve el número de objetos en el almacenamiento
- SplObjectStorage::current — Devuelve la entrada actual de almacenamiento
- SplObjectStorage::detach — Quita un object de el almacenamiento
- SplObjectStorage::getHash — Calcular un identificador único (hash) para los objetos contenidos
- SplObjectStorage::getInfo — Devuelve los datos asociados con la entrada del iterador actual
- SplObjectStorage::key — Devuelve el índice en el que se encuentra el iterador actualmente
- SplObjectStorage::next — Mover a la siguiente entrada
- SplObjectStorage::offsetExists — Comprueba si un objeto existe en el almacenamiento
- SplObjectStorage::offsetGet — Devuelve los datos asociados con un object
- SplObjectStorage::offsetSet — Asocia datos a un objeto en el almacenamiento
- SplObjectStorage::offsetUnset — Quita un objeto de el almacenamiento
- SplObjectStorage::removeAll — Remover objetos contenidos en otro almacenamiento de el almacenamiento actual
- SplObjectStorage::removeAllExcept — Remover objetos excepto los contenidos en otro almacenamiento del almacenamiento actual
- SplObjectStorage::rewind — Rebobina el iterador a el primer elemento de el almacenamiento
- SplObjectStorage::serialize — Serializa el almacenamiento
- SplObjectStorage::setInfo — Establece los datos asociados con el iterador de la entrada actual
- SplObjectStorage::unserialize — Deserializa un almacenamiento desde su representación string
- SplObjectStorage::valid — Comprobar si la entrada actual del iterador es válida