(PHP 7 >= 7.4.0, PHP 8)
Слабые ссылки полезны для организации кешеподобных структур.
Слабые ссылки, в отличие от стандартных, не увеличивают счётчик refcount
на связанный объект и поэтому не мешают сборщику мусора уничтожить исходный объект
при обнулении счётчика ссылок.
Метод WeakReference::get() вернёт null,
если исходный объект уничтожили.
Объект WeakReference невозможно сериализовать.
Пример #1 Пример обнуления объекта WeakReference после уничтожения исходного объекта
<?php
$obj = new stdClass();
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());Вывод приведённого примера будет похож на:
object(stdClass)#1 (0) {
}
NULL
| Версия | Описание |
|---|---|
| 8.4.0 |
Вывод метода WeakReference::__debugInfo() теперь включает связанный объект;
при потери связи с объектом метод возвращает NULL.
|