Welcome to php club

Деструкторы

Краткое описание

Иметь возможность определять деструктор для объекта может быть очень полезно. Деструкторы могут протоколировать сообщения для отладки, закрывать соединения с БД и делать другую работу по очистке. PHP5 определяет поведение деструктора похожее на другие ОО языки, такие как Java: Когда не остается ни одной ссылки на объект, вызывается его деструктор, который является методом с именем __destruct и не имеет никаких параметров, перед тем, как объект будет удален из памяти. Также как и конструкторы, деструкторы предков не вызываются автоматически.
Пример:

<?php
class MyDestructableClass {
    function
__construct() {
        echo
"В конструкторе\n";
        
$this->name = 'MyDestructableClass';
    }

    function
__destruct() {
        echo
'Разрушаем ' . $this->name . "\n";
    }
}

$o = new MyDestructableClass();
?>

Результат:

Проблемы с обратной совместимостью

Старый код с классами без метода __destruct() должен работать без изменений.

Дополнительные сведения

Описание в оригинальной документации: http://www.php.net/oop5.decon


 
Комментариев нет. [Показать комментарии/форму]