(PECL weakref >= 0.1.0)
Weakref::release — Освобождает предыдущую сильную ссылку
Освобождает предыдущую сильную ссылку, превращая ее обратно в слабую (при условии, что внутренний счетчик равен нулю).
Объект Weakref содержит внутренний счетчик ссылок. Если вызов Weakref::release() прошел успешно, то этот счетчик уменьшится на единицу. Когда этот счетчик уменьшится до нуля, сильная ссылка становится слабой.
У этой функции нет параметров.
Возвращает TRUE
, если ссылка была помечена как сильная и счетчик успешно уменьшился на единицу, FALSE
в противном случае.
Пример #1 Пример использования Weakref::release()
<?php
class MyClass {
public function __destruct() {
echo "Уничтожение объекта!\n";
}
}
$o1 = new MyClass;
$r1 = new Weakref($o1);
$r1->acquire();
echo "Удаление o1...\n";
unset($o1);
$o2 = $r1->get();
$r1->release();
echo "Удаление o2...\n";
unset($o2);
?>
Результат выполнения данного примера:
Удаление o1... Удаление o2... Уничтожение объекта!