Introducción
PHP Manual
PHP Manual»Estructuras de datos»SplObjectStorage

La clase SplObjectStorage

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

La clase SplObjectStorage proporciona un mapa de objetos o de datos, o bien, ignorando los índices, un conjunto de objetos. Este doble propósito es útil en numerosas situaciones, donde es necesario identificar de manera única objetos.

class SeekableSplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess {
/* Métodos */
public function SplObjectStorage::addAll(SplObjectStorage $storage): int
#[\Deprecated]
public function SplObjectStorage::attach(object $object, mixed $info = null): void
#[\Deprecated]
public function SplObjectStorage::contains(object $object): bool
public function SplObjectStorage::count(int $mode = COUNT_NORMAL): int
#[\Deprecated]
public function SplObjectStorage::detach(object $object): void
public function SplObjectStorage::getHash(object $object): string
public function SplObjectStorage::getInfo(): mixed
public function SplObjectStorage::key(): int
public function SplObjectStorage::next(): void
public function SplObjectStorage::offsetExists(object $object): bool
public function SplObjectStorage::offsetGet(object $object): mixed
public function SplObjectStorage::offsetSet(object $object, mixed $info = null): void
public function SplObjectStorage::offsetUnset(object $object): void
public function SplObjectStorage::rewind(): void
public function SplObjectStorage::seek(int $offset): void
public function SplObjectStorage::setInfo(mixed $info): void
public function SplObjectStorage::unserialize(string $data): void
public function SplObjectStorage::valid(): bool
}

Ejemplo #1 Ejemplo con SplObjectStorage, en forma de conjunto de objetos

<?php
// 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 ejemplo anterior mostrará:

bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Ejemplo #2 Ejemplo con SplObjectStorage, en forma de mapa

<?php
// Un mapa de objetos
$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 ejemplo anterior mostrará:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Versión Descripción
8.4.0 Implementa SeekableIterator, anteriormente solo se implementaba la interfaz Iterator.

Tabla de contenidos

To Top