The SplObjectStorage class

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

Giriş

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.

Sınıf Sözdizimi

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
}

Örnekler

Örnek 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));
?>

Yukarıdaki örneğin çıktısı:

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

Örnek 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]);
}
?>

Yukarıdaki örneğin çıktısı:

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

İçindekiler

To Top