라이브러리

[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` 메서드는 객체를 캐시에 추가합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 139 페이지

검색

게시물 검색