라이브러리
[PHP] SplObjectStorage::attach - 저장소에 객체를 추가합니다.
SplObjectStorage::attach
`SplObjectStorage::attach` 메서드는 객체를 스토리지에 추가합니다. 이 메서드는 객체를 스토리지에 저장하고, 객체의 ID를 스토리지에 등록합니다. 이 메서드는 객체가 이미 스토리지에 저장되어 있는 경우, 스토리지에 저장된 객체를 반환합니다.
예제
#hostingforum.kr
php
class Person {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
$storage = new SplObjectStorage();
$person1 = new Person('John');
$person2 = new Person('Jane');
// person1을 스토리지에 추가합니다.
$storage->attach($person1);
// person2를 스토리지에 추가합니다. person2는 이미 스토리지에 저장되어 있으므로, 스토리지에 저장된 person2를 반환합니다.
$person2 = $storage->attach($person2);
// 스토리지에 저장된 객체를 출력합니다.
foreach ($storage as $object) {
echo $object->name . "
";
}
결과
#hostingforum.kr
John
Jane
사용 예시
`SplObjectStorage::attach` 메서드는 객체를 스토리지에 추가할 때 사용할 수 있습니다. 예를 들어, 객체를 캐시에 저장하고, 객체가 이미 캐시에 저장되어 있는 경우, 캐시에 저장된 객체를 반환하는 캐시 시스템을 구현할 때 사용할 수 있습니다.
#hostingforum.kr
php
class Cache {
private $storage;
public function __construct() {
$this->storage = new SplObjectStorage();
}
public function get($object) {
return $this->storage->attach($object);
}
public function set($object) {
$this->storage->attach($object);
}
}
$cache = new Cache();
$person1 = new Person('John');
$person2 = new Person('Jane');
$person1 = $cache->get($person1);
$person2 = $cache->set($person2);
// 스토리지에 저장된 객체를 출력합니다.
foreach ($cache->storage as $object) {
echo $object->name . "
";
}
결과
#hostingforum.kr
John
Jane
이 예제에서, `Cache` 클래스는 `SplObjectStorage` 객체를 사용하여 객체를 캐시에 저장합니다. `get` 메서드는 객체를 캐시에 추가하고, 객체가 이미 캐시에 저장되어 있는 경우, 캐시에 저장된 객체를 반환합니다. `set` 메서드는 객체를 캐시에 추가합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.