Клас 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)