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

Класс WeakReference

(PHP 7 >= 7.4.0, PHP 8)

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

Объект класса 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