php8.5
Home/ Manual/ language / predefined/ The WeakReference class

The WeakReference class

Weak references allow the programmer to retain a reference to an object without preventing the object from being destroyed. They are useful for implementing cache-like structures. If the original object has been destroyed, null will be returned when calling the WeakReference::get method. The original object will be destroyed when the refcount for it drops to zero; creating weak references does not increase the refcount of the object being referenced.

Intro

Weak references allow the programmer to retain a reference to an object without preventing the object from being destroyed. They are useful for implementing cache-like structures. If the original object has been destroyed, null will be returned when calling the WeakReference::get method. The original object will be destroyed when the refcount for it drops to zero; creating weak references does not increase the refcount of the object being referenced.

WeakReferences cannot be serialized.

Class synopsis

final WeakReference { }

WeakReference Examples

Basic WeakReference Usage

php
<?php

$obj = new stdClass();
$weakref = WeakReference::create($obj);

var_dump($weakref->get());

unset($obj);

var_dump($weakref->get());

?>

The above example will output something similar to:

output
object(stdClass)#1 (0) {
}
NULL

Changelog

VersionDescription
8.4.0The output of WeakReference::__debugInfo now includes the referenced object, or null if the reference is no longer valid.

Construct Create Get

In this section

Source: language/predefined/weakreference.xml · from the official PHP manual (php/doc-en)