(PHP 7 >= 7.4.0,PHP 8)
弱引用允许程序员保留对对象的引用,但不会阻止对象被销毁。它们对于实现类似缓存的结构很有用。如果原始对象已被销毁,则在调用 WeakReference::get() 方法时将返回 null
。当其 refcount 降至零时,原始对象将被销毁;创建弱引用不会增加被引用的对象的 refcount
。
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