Введение
PHP Manual
PHP Manual»Встроенные интерфейсы и классы»WeakReference

Класс WeakReference

(PHP 7 >= 7.4.0, PHP 8)

Слабые ссылки полезны для организации кешеподобных структур. Слабые ссылки, в отличие от стандартных, не увеличивают счётчик refcount на связанный объект и поэтому не мешают сборщику мусора уничтожить исходный объект при обнулении счётчика ссылок. Метод WeakReference::get() вернёт null, если исходный объект уничтожили.

Объект WeakReference невозможно сериализовать.

final class WeakReference {
/* Методы */
public function __construct()
public static function create(object $object): WeakReference
public function get(): ?object
}

Пример #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.

Содержание

To Top