(PHP 5 >= 5.1.0, PHP 7, PHP 8)
Класс SplObjectStorage предоставляет отображение объектов в данные или набор объектов, игнорируя данные. Эта двойная цель может быть полезна во многих случаях, включая необходимость уникальной идентификации объектов.
Пример #1 Класс SplObjectStorage как набор объектов
<?php
// Набор объектов
$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));
?>
Результат выполнения данного примера:
bool(true) bool(true) bool(false) bool(true) bool(false) bool(false)
Пример #2 Класс SplObjectStorage как отображение объектов в данные
<?php
// Как отображение объектов к данным
$s = new SplObjectStorage();
$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new stdClass;
$s[$o1] = "данные для объекта 1";
$s[$o2] = array(1,2,3);
if (isset($s[$o2])) {
var_dump($s[$o2]);
}
?>
Результат выполнения данного примера:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }