Метад __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,
    які з'яўляецца канструктарам класа