Метод __destruct

Функцията __destruct е магически метод в PHP, който автоматично се извиква при изтриване на обект от паметта. Това се случва или когато скриптът приключи работа, или когато обектът бива изрично унищожен. Методът е полезен за освобождаване на ресурси (например затваряне на файлови дескриптори или връзки с бази данни).

Синтаксис

phpclass MyClass {
  public function __destruct() {
    // код на деструктора
  }
}

Пример

Прост пример за клас с деструктор, който извежда съобщение при унищожаване на обекта:

php<?php
class Test {
  public function __destruct() {
    echo 'Object destroyed';
  }
}

$obj = new Test();
unset($obj); // Ще извика деструктора
?>

Резултат от изпълнението на кода:

php'Object destroyed'

Пример

Пример с освобождаване на ресурси (затваряне на файл):

php<?php
class FileHandler {
  private $file;

  public function __construct($filename) {
    $this->file = fopen($filename, 'r');
  }

  public function __destruct() {
    if ($this->file) {
      fclose($this->file);
      echo 'File closed';
    }
  }
}

$handler = new FileHandler('example.txt');
// Работа с файла...
unset($handler); // Затваря файла автоматично
?>

Резултат от изпълнението на кода:

php'File closed'

Вижте също

  • метод __construct,
    който е конструктор на клас