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
class 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
class Test {
public function __destruct() {
echo 'Object destroyed';
}
}
$obj = new Test();
unset($obj); // Zavolá destruktor
?>
Výsledek provedení kódu:
'Object destroyed'
Příklad
Příklad s uvolněním zdrojů (uzavření souboru):
<?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:
'File closed'
Viz také
-
metoda
__construct,
která je konstruktorem třídy