Metoda __destruct

Funkce __destruct je magická metoda v PHP, která je automaticky volána při odstranění objektu z paměti. K tomu dochází buď když skript dokončí práci, nebo když je objekt explicitně zničen. Metoda je užitečná pro uvolnění zdrojů (například uzavření souborových deskriptorů nebo připojení k databázi).

Syntaxe

phpclass MyClass {
  public function __destruct() {
    // kód destruktoru
  }
}

Příklad

Jednoduchý příklad třídy s destruktorem, který vypíše zprávu při zničení objektu:

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

$obj = new Test();
unset($obj); // Zavolá destruktor
?>

Výsledek provedení kódu:

php'Object destroyed'

Příklad

Příklad s uvolněním zdrojů (uzavření souboru):

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');
// Práce se souborem...
unset($handler); // Automaticky uzavře soubor
?>

Výsledek provedení kódu:

php'File closed'

Viz také