Closure クラス
無名関数 を表すために使うクラスです。
無名関数は、Closure 型のオブジェクトを生成します。 このクラスにはメソッドが用意され、 生成した無名関数をさらにコントロールできるようになっています。
Generator クラス
ジェネレータ関数を呼んだときには、この内部クラスの新しいオブジェクトを返します。
Generator オブジェクトのインスタンスは new では作れません。
Fiber クラス
php 8.1
ファイバー(Fiber) は 完全なスタックを持つ、停止可能な関数です。 ファイバー はコールスタック中のどこからでも停止することができますし、 後に再開されるまで実行を停止したままにできます。
WeakReference クラス
弱い参照により、オブジェクトが破棄されるのを妨げないオブジェクトへの参照を保持することが可能です。 この機能は、キャッシュのようなデータ構造を実装するのに役立ちます。
$obj = new stdClass;
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());
/* output
object(stdClass)#1 (0) {
}
NULL //元のオブジェクトが破棄されるとNULLになる
*/