# The WeakReference class

(PHP 7 >= 7.4.0, PHP 8)

## Introduction

Weak references allow the programmer to retain a reference to an object which does not prevent 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 class WeakReference {
/* Methods */
public __construct()
public static create(object `$object`): WeakReference
public get(): ?object
}

## WeakReference Examples

Example #1 Basic WeakReference Usage

`<?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:

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

## Changelog

Version | Description
--- | ---
8.4.0 | The output of WeakReference::__debugInfo() now includes the referenced object, or `NULL` if the reference is no longer valid.

## Table of Contents

- WeakReference::__construct — Constructor that disallows instantiation
- WeakReference::create — Create a new weak reference
- WeakReference::get — Get a weakly referenced Object

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open