라이브러리
[PHP] WeakMap::offsetSet - 새로운 키-값 쌍으로 맵을 업데이트합니다.
WeakMap::offsetSet
PHP 7.4 버전부터 WeakMap 클래스가 추가되었습니다. WeakMap은 키와 값이 모두 객체인 맵을 나타내는 클래스입니다. WeakMap의 특징은 키가 가비지 컬렉션 대상이 되는 것을 허용하여 메모리 관리를 용이하게 한다는 것입니다.
WeakMap::offsetSet 메소드는 키와 값을 WeakMap에 추가하는 메소드입니다. 이 메소드는 키가 이미 존재하는 경우 기존 값을 갱신하고, 키가 존재하지 않는 경우 새로운 값을 추가합니다.
예제
#hostingforum.kr
php
class Person {
public $name;
function __construct($name) {
$this->name = $name;
}
}
$weakMap = new WeakMap();
// 키와 값을 추가합니다.
$person1 = new Person('John');
$weakMap->offsetSet($person1, 'value1');
// 키가 이미 존재하는 경우 기존 값을 갱신합니다.
$person2 = $person1;
$weakMap->offsetSet($person2, 'value2');
// 키가 존재하지 않는 경우 새로운 값을 추가합니다.
$person3 = new Person('Jane');
$weakMap->offsetSet($person3, 'value3');
// 키가 존재하지 않으면 null을 반환합니다.
$person4 = new Person('Jim');
var_dump($weakMap->offsetGet($person4)); // null
// 키가 존재하면 값을 반환합니다.
var_dump($weakMap->offsetGet($person1)); // string(5) "value2"
// 키가 존재하지 않으면 null을 반환합니다.
unset($person1);
var_dump($weakMap->offsetGet($person1)); // null
WeakMap의 특징
WeakMap의 키는 가비지 컬렉션 대상이 됩니다. 즉, 키가 참조되지 않으면 메모리에서 자동으로 해제됩니다. 이 특징은 메모리 관리를 용이하게 합니다.
예제: WeakMap의 가비지 컬렉션
#hostingforum.kr
php
class Person {
public $name;
function __construct($name) {
$this->name = $name;
}
}
$weakMap = new WeakMap();
$person1 = new Person('John');
$weakMap->offsetSet($person1, 'value1');
// 키가 참조되지 않으면 메모리에서 해제됩니다.
unset($person1);
// 키가 존재하지 않으면 null을 반환합니다.
var_dump($weakMap->offsetGet($person1)); // null
결론
WeakMap::offsetSet 메소드는 키와 값을 WeakMap에 추가하는 메소드입니다. 이 메소드는 키가 이미 존재하는 경우 기존 값을 갱신하고, 키가 존재하지 않는 경우 새로운 값을 추가합니다. WeakMap의 키는 가비지 컬렉션 대상이 됩니다. 이 특징은 메모리 관리를 용이하게 합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.