English | 简体中文 | 繁體中文
查询

WeakReference::create()函数—用法及示例

「 创建一个弱引用对象,该对象可以引用其他对象,但不会阻止其他对象被垃圾回收器回收 」


函数名称:WeakReference::create()

适用版本:PHP 7.4.0 及以上版本

函数说明:WeakReference::create() 函数用于创建一个弱引用对象,该对象可以引用其他对象,但不会阻止其他对象被垃圾回收器回收。

语法:public static WeakReference::create(object $referent): WeakReference|null

参数:

  • $referent:必需,要引用的对象。

返回值:

  • 成功时返回一个 WeakReference 对象,该对象引用了给定的 $referent 对象。
  • 失败时返回 null。

示例:

class MyClass {
    public $name;
}

$obj = new MyClass();
$obj->name = "John";

$ref = WeakReference::create($obj);

$obj = null; // 将对象设置为 null

// 判断弱引用是否仍然有效
if ($ref->valid()) {
    $referent = $ref->get();
    echo $referent->name; // 输出:John
} else {
    echo "弱引用已失效。";
}

在以上示例中,我们创建了一个类 MyClass 的实例 $obj,并给其属性 name 赋值为 "John"。然后使用 WeakReference::create() 函数创建了一个弱引用对象 $ref,它引用了 $obj。

接着,我们将 $obj 设置为 null,即不再引用任何对象。然后通过调用 $ref->valid() 方法判断弱引用是否仍然有效。如果有效,我们可以通过 $ref->get() 方法获取到原始对象,并输出其属性值。

需要注意的是,当 $obj 设置为 null 后,如果没有其他地方对该对象的引用,垃圾回收器会自动回收该对象,此时弱引用将失效。因此,我们在示例中使用 $ref->valid() 来判断弱引用是否仍然有效。

补充纠错
上一个函数: WeakReference::get()函数
下一个函数: WeakMap::offsetUnset()函数
热门PHP函数
分享链接