Клас WeakMap
(PHP 8)
Вступ
WeakMap - це колекція (map) або словник, який приймає об'єкти як ключі. Однак, на відміну від аналогічного в іншому SplObjectStorage, об'єкт у ключі WeakMap не впливає на лічильник посилань об'єкта. Тобто, якщо в якийсь момент єдиним посиланням на об'єкт є ключ WeakMap, об'єкт буде зібраний збирачем сміття та видалено з WeakMap. Його основний варіант використання – створення кешів даних, отриманих з об'єкта, яким не потрібно жити довше, ніж об'єкт.
WeakMap реалізує ArrayAccess Iterator і CountableТому у більшості випадків його можна використовувати так само, як асоціативний масив.
Огляд класів
final
class WeakMap
implements
ArrayAccess,
Countable,
IteratorAggregate {
/* Методы */
public count(): int
public getIterator(): Iterator
public offsetExists(object $object): bool
public offsetGet(object $object): mixed
public offsetSet(object $object, mixed $value): void
public offsetUnset(object $object): void
}
Приклади
Приклад #1 Приклад використання Weakmap****
Loading...
Результат виконання наведеного прикладу:
int(1)
Сброс...
Уничтожено!
Готово
int(0)
Зміст
- WeakMap::count— Підраховує кількість живих записів у колекції (map)
- WeakMap::getIterator— Отримує зовнішній ітератор
- WeakMap::offsetExists— Перевіряє, чи є у колекції (map) певний об'єкт
- WeakMap::offsetGet— Повертає значення, на яке вказує певний об'єкт
- WeakMap::offsetSet— Оновлює колекцію (map) новою парою ключ-значення
- WeakMap::offsetUnset— Видаляє запис із колекції (map)