라이브러리
[PHP] WeakMap::offsetGet - 특정 객체가 가리키는 값을 반환합니다.
WeakMap::offsetGet
PHP 7.3.0 버전부터 WeakMap 클래스가 추가되었습니다. WeakMap은 키와 값의 관계를 저장하는 자료구조입니다. WeakMap은 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다.
WeakMap::offsetGet 메소드는 WeakMap에서 특정 키에 해당하는 값을 가져오는 메소드입니다. 이 메소드는 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다.
예제
#hostingforum.kr
php
class Person {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
$person = new Person('John');
$weakMap = new WeakMap();
$weakMap[$person] = 'Hello, ' . $person->name;
// 키를 참조하지 않으면 키가 가비지 컬렉션에 의해 삭제될 수 있습니다.
unset($person);
// 키가 삭제된 후에 offsetGet 메소드를 호출하면 NULL을 반환합니다.
var_dump($weakMap->offsetGet($person));
WeakMap::offsetGet 메소드의 특징
- 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다.
- 키가 삭제된 후에 offsetGet 메소드를 호출하면 NULL을 반환합니다.
- 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다.
WeakMap::offsetGet 메소드의 사용 예제
#hostingforum.kr
php
class Person {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
$person1 = new Person('John');
$person2 = new Person('Jane');
$weakMap = new WeakMap();
$weakMap[$person1] = 'Hello, ' . $person1->name;
$weakMap[$person2] = 'Hello, ' . $person2->name;
// 키를 참조하지 않으면 키가 가비지 컬렉션에 의해 삭제될 수 있습니다.
unset($person1);
// 키가 삭제된 후에 offsetGet 메소드를 호출하면 NULL을 반환합니다.
var_dump($weakMap->offsetGet($person1)); // NULL
// 키가 삭제되지 않은 경우에 offsetGet 메소드를 호출하면 값이 반환됩니다.
var_dump($weakMap->offsetGet($person2)); // Hello, Jane
WeakMap::offsetGet 메소드의 장점
- 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다.
- 키가 삭제된 후에 offsetGet 메소드를 호출하면 NULL을 반환합니다.
WeakMap::offsetGet 메소드의 단점
- 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다. 이 경우에 키가 삭제된 후에 offsetGet 메소드를 호출하면 NULL을 반환합니다.
결론
WeakMap::offsetGet 메소드는 WeakMap에서 특정 키에 해당하는 값을 가져오는 메소드입니다. 이 메소드는 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다. WeakMap::offsetGet 메소드는 키가 삭제된 후에 offsetGet 메소드를 호출하면 NULL을 반환합니다. WeakMap::offsetGet 메소드는 키가 객체일 때, 키를 참조하지 않는 경우에 키가 가비지 컬렉션에 의해 삭제될 수 있습니다. 이 경우에 키가 삭제된 후에 offsetGet 메소드를 호출하면 NULL을 반환합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.