(PECL weakref >= 0.1.0)
Класс WeakRef предоставляет способ доступа к объекту, не влияя при этом на количество ссылок на него, таким образом сборщик мусора сможет освободить этот объект. Это также дает возможность превратить слабую ссылку в сильную.
Замечание:
Класс WeakRef не следует путать с классом WeakReference.
Пример #1 Пример использования WeakRef
<?php
class MyClass {
public function __destruct() {
echo "Уничтожение объекта!\n";
}
}
$o1 = new MyClass;
$r1 = new WeakRef($o1);
if ($r1->valid()) {
echo "Объект все еще существует!\n";
var_dump($r1->get());
} else {
echo "Объект уничтожен!\n";
}
unset($o1);
if ($r1->valid()) {
echo "Объект все еще существует!\n";
var_dump($r1->get());
} else {
echo "Объект уничтожен!\n";
}
?>
Результат выполнения данного примера:
Объект все еще существует! object(MyClass)#1 (0) { } Уничтожение объекта! Объект уничтожен!