A classe SplObjectStorage
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
Introdução
A classe SplObjectStorage fornece um mapa de objetos para dados ou, ao ignorar os dados, um conjunto de objetos. Esse propósito duplo pode ser útil em muitos casos que envolvem a necessidade de identificar objetos de forma única.
Resumo da classe
/* Métodos */
}Exemplos
Example #1 SplObjectStorage como um conjunto
<?php
// Como um 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));
?>
O exemplo acima produzirá:
bool(true) bool(true) bool(false) bool(true) bool(false) bool(false)
Example #2 SplObjectStorage como um mapa
<?php
// Como um mapa de objetos para dados
$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]);
}
?>
O exemplo acima produzirá:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
Table of Contents
- SplObjectStorage::addAll — Adiciona todos os objetos de outro armazenamento
- SplObjectStorage::attach — Adiciona um objeto no armazenamento
- SplObjectStorage::contains — Verifica se no armazenamento contém um objeto específico
- SplObjectStorage::count — Retorna o número de objetos no armazenamento
- SplObjectStorage::current — Retorna a entrada atual do armazenamento
- SplObjectStorage::detach — Remove um object do armazenamento
- SplObjectStorage::getHash — Calcula um identificador único para os objetos contidos
- SplObjectStorage::getInfo — Retorna os dados associados à entrada atual do iterador
- SplObjectStorage::key — Retorna o índice em que o iterador está atualmente
- SplObjectStorage::next — Move para a próxima entrada
- SplObjectStorage::offsetExists — Verifica se um objeto existe no armazenamento
- SplObjectStorage::offsetGet — Retorna os dados associados a um object
- SplObjectStorage::offsetSet — Associa dados a um objeto no armazenamento
- SplObjectStorage::offsetUnset — Remove um objeto do armazenamento
- SplObjectStorage::removeAll — Remove objetos contidos em outro armazenamento do armazenamento atual
- SplObjectStorage::removeAllExcept — Remove todos os objetos, exceto aqueles contidos em outro armazenamento, do armazenamento atual
- SplObjectStorage::rewind — Retrocede o iterador para o primeiro elemento do armazenamento
- SplObjectStorage::serialize — Serializa o armazenamento
- SplObjectStorage::setInfo — Define os dados associados à entrada atual do iterador
- SplObjectStorage::unserialize — Desserializa um armazenamento a partir de sua representação de string
- SplObjectStorage::valid — Retorna se a entrada atual do iterador é válida