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

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

「 获取弱引用所引用的对象 」


函数名称:WeakReference::get()

函数描述:该函数用于获取弱引用所引用的对象。

函数参数:无

函数返回值:如果弱引用仍然有效,则返回被引用的对象;如果对象已经被销毁或者引用无效,则返回NULL。

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

示例用法:

class MyClass {
    public function __destruct() {
        echo "MyClass对象已被销毁\n";
    }
}

$obj = new MyClass();
$weakRef = WeakReference::create($obj);

// 获取弱引用所引用的对象
$retrievedObj = $weakRef->get();

if ($retrievedObj === null) {
    echo "对象已被销毁\n";
} else {
    echo "对象仍然存在\n";
    // 执行一些操作
}

unset($obj); // 销毁原对象

// 再次尝试获取弱引用所引用的对象
$retrievedObj = $weakRef->get();

if ($retrievedObj === null) {
    echo "对象已被销毁\n";
} else {
    echo "对象仍然存在\n";
    // 执行一些操作
}

输出结果:

对象仍然存在
MyClass对象已被销毁
对象已被销毁

上述示例中,我们首先创建一个MyClass对象,并使用WeakReference::create()函数创建一个弱引用。然后,通过WeakReference::get()函数获取弱引用所引用的对象。如果对象仍然存在,则输出"对象仍然存在";否则,输出"对象已被销毁"。

接着,我们使用unset()函数销毁原对象。再次调用WeakReference::get()函数时,由于原对象已被销毁,将返回NULL,输出"对象已被销毁"。

请注意,WeakReference类只在PHP 7.4.0及以上版本中可用。在较早的版本中,您可以考虑使用SplObjectStorage类来实现类似的功能。

补充纠错
热门PHP函数
分享链接