Dutch PHP Conference 2021 - Call for Papers

Введение

Слабые ссылки предоставляют простой инструмент для доступа к временным объектам. В отличие от обычной (сильной) ссылки, слабые ссылки не препятствуют сборщику мусора освободить этот объект. По этой причине объект может быть удалён, несмотря на то, что слабая ссылка на него всё ещё существует. В этом случае такая ссылка становится недействительной.

Пример #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) {
}
Уничтожение объекта!
Объект уничтожен!

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top