WeakReference クラス

はじめに

弱い参照により、オブジェクトが破棄されるのを妨げないオブジェクトへの参照を保持することが可能です。 この機能は、キャッシュのようなデータ構造を実装するのに役立ちます。 元のオブジェクトが破棄されている場合、 WeakReference::get メソッドを呼び出すと null を返します。 元のオブジェクトは、refcount が 0 になると破棄されます。 弱い参照を作成しても、参照されているオブジェクトの refcount は増加しません。

WeakReference クラスはシリアライズできません。

クラス概要

final WeakReference
/* メソッド */
public __construct()
public static WeakReference create(object $object)
public objectnull get()

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

変更履歴

バージョン 説明
8.4.0 WeakReference::__debugInfo の出力に、 参照されたオブジェクトを含むようになりました。また、参照が有効ではなくなっている場合は、 参照されたオブジェクトは NULL となります。
目次