LonghornPHP 2026

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

Пример работы с объектом 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.

Содержание

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top