표준 PHP 라이브러리(SPL) SplObjectStorage class

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


소개

SplObjectStorage 클래스는 개체에서 데이터로의 맵을 제공하거나 데이터를 무시하여 개체 집합을 제공합니다. 이 이중 목적은 개체를 고유하게 식별해야 하는 많은 경우에 유용할 수 있습니다.


클래스 개요

                  
class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess {

  /* Methods */
  public addAll(SplObjectStorage $storage): int
  public attach(object $object, mixed $info = null): void
  public contains(object $object): bool
  public count(int $mode = COUNT_NORMAL): int
  public current(): object
  public detach(object $object): void
  public getHash(object $object): string
  public getInfo(): mixed
  public key(): int
  public next(): void
  public offsetExists(object $object): bool
  public offsetGet(object $object): mixed
  public offsetSet(object $object, mixed $info = null): void
  public offsetUnset(object $object): void
  public removeAll(SplObjectStorage $storage): int
  public removeAllExcept(SplObjectStorage $storage): int
  public rewind(): void
  public serialize(): string
  public setInfo(mixed $info): void
  public unserialize(string $data): void
  public valid(): bool
}
                  
                

Examples

예제 #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));
?>
                  
                

위의 예는 다음을 출력합니다.

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

예제 #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]);
}
?>
                  
                

위의 예는 다음을 출력합니다.

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

목차