The SplObjectStorage class

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

Einführung

The SplObjectStorage class provides a map from objects to data or, by ignoring data, an object set. This dual purpose can be useful in many cases involving the need to uniquely identify objects.

Klassenbeschreibung

classSplObjectStorageimplementsCountable, Iterator, Serializable, ArrayAccess {
publicaddAll(SplObjectStorage$storage): int
publicattach(object$object, mixed$info = null): void
publiccontains(object$object): bool
publiccount(int$mode = COUNT_NORMAL): int
publiccurrent(): object
publicdetach(object$object): void
publicgetHash(object$object): string
publicgetInfo(): mixed
publickey(): int
publicnext(): void
publicoffsetExists(object$object): bool
publicoffsetGet(object$object): mixed
publicoffsetSet(object$object, mixed$info = null): void
publicoffsetUnset(object$object): void
publicrewind(): void
publicserialize(): string
publicsetInfo(mixed$info): void
publicunserialize(string$data): void
publicvalid(): bool
}

Beispiele

Beispiel #1 SplObjectStorage as a set

<?php
// As an object set
$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));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Beispiel #2 SplObjectStorage as a map

<?php
// As a map from objects to data
$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]);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Inhaltsverzeichnis

To Top