(PHP 7 >= 7.4.0, PHP 8)
Слабые ссылки разрешают программисту сохранять ссылку на объект
только до тех пор, пока исходный объект не уничтожили. Слабые ссылки приносят пользу,
когда требуется создать кешеподобную структуру данных.
Метод WeakReference::get() вернёт null
,
если исходный объект уничтожили. Сборщик мусора уничтожит исходный объект,
если счётчик ссылок на исходный объект
сбросится до нуля; слабые ссылки не увеличивают счётчик ссылок refcount
объекта, на который ссылаются.
Объект класса 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 , если ссылка больше не действительна.
|