# WeakReference 类

(PHP 7 >= 7.4.0, PHP 8)

## 简介

弱引用允许保留对对象的引用，而不会阻止销毁对象。对于实现类似缓存的结构很有用。如果原始对象已销毁，则调用 WeakReference::get() 方法时将返回 `null`。当原始对象的 refcount 降至零时，会销毁原始对象；创建弱引用不会增加被引用对象的 `refcount`。

弱引用类不能序列化。

## 类摘要

final class WeakReference {
/* 方法 */
public function __construct()
public static function create(object `$object`): WeakReference
public function get(): ?object
}

## 弱引用示例

示例 #1 弱引用的基础用法

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

## 目录

- WeakReference::__construct — 不允许实例化的构造函数
- WeakReference::create — 创建新的弱引用
- WeakReference::get — 获取弱引用对象

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