Metoda __destruct

Funkcja __destruct jest magiczną metodą w PHP, która jest automatycznie wywoływana przy usuwaniu obiektu z pamięci. Dzieje się tak albo gdy skrypt kończy działanie, albo gdy obiekt jest jawnie niszczony. Metoda jest przydatna do zwalniania zasobów (na przykład zamykania deskryptorów plików lub połączeń z bazą danych).

Składnia

phpclass MyClass {
  public function __destruct() {
    // kod destruktora
  }
}

Przykład

Prosty przykład klasy z destruktorem, który wyświetla wiadomość przy niszczeniu obiektu:

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

$obj = new Test();
unset($obj); // Wywoła destruktor
?>

Wynik wykonania kodu:

php'Object destroyed'

Przykład

Przykład ze zwalnianiem zasobów (zamknięcie pliku):

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');
// Praca z plikiem...
unset($handler); // Zamknie plik automatycznie
?>

Wynik wykonania kodu:

php'File closed'

Zobacz też