PHP 8.5.8 Released!

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

目录

发现了问题?

了解如何改进此页面提交拉取请求报告一个错误
+添加备注

用户贡献的备注

此页面尚无用户贡献的备注。

AltStyle によって変換されたページ (->オリジナル) /