Методот __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,
    кој е конструктор на класата