표준 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) }
목차
- SplObjectStorage::addAll — 다른 저장소의 모든 개체를 추가합니다.
- SplObjectStorage::attach — 저장소에 개체를 추가합니다.
- SplObjectStorage::contains — 저장소에 특정 개체가 포함되어 있는지 확인합니다.
- SplObjectStorage::count — 저장소의 개체 수를 반환합니다.
- SplObjectStorage::current — 현재 스토리지 항목을 반환합니다.
- SplObjectStorage::detach — 저장소에서 개체를 제거합니다.
- SplObjectStorage::getHash — 포함된 개체의 고유 식별자 계산
- SplObjectStorage::getInfo — 현재 반복기 항목과 관련된 데이터를 반환합니다.
- SplObjectStorage::key — 반복자가 현재 있는 인덱스를 반환합니다.
- SplObjectStorage::next — 다음 항목으로 이동
- SplObjectStorage::offsetExists — 저장소에 개체가 있는지 확인
- SplObjectStorage::offsetGet — 객체와 관련된 데이터를 반환
- SplObjectStorage::offsetSet — 스토리지의 개체에 데이터 연결
- SplObjectStorage::offsetUnset — 저장소에서 개체를 제거합니다.
- SplObjectStorage::removeAll — 현재 저장소에서 다른 저장소에 포함된 개체를 제거합니다.
- SplObjectStorage::removeAllExcept — 현재 저장소에서 다른 저장소에 포함된 개체를 제외한 모든 개체를 제거합니다.
- SplObjectStorage::rewind — 반복자를 첫 번째 저장 요소로 되감기
- SplObjectStorage::serialize — 스토리지 직렬화
- SplObjectStorage::setInfo — 현재 반복기 항목과 관련된 데이터를 설정합니다.
- SplObjectStorage::unserialize — 문자열 표현에서 스토리지를 직렬화 해제합니다.
- SplObjectStorage::valid — 현재 반복자 항목이 유효한 경우 반환