Metoda __destruct
Funcția __destruct este o metodă magică în PHP, care este apelată automat la ștergerea unui obiect din memorie. Acest lucru se întâmplă fie când scriptul își încheie execuția, fie când obiectul este distrus în mod explicit. Metoda este utilă pentru eliberarea resurselor (de exemplu, închiderea descriptorilor de fișiere sau a conexiunilor la baza de date).
Sintaxă
class MyClass {
public function __destruct() {
// codul destructorului
}
}
Exemplu
Un exemplu simplu de clasă cu un destructor care afișează un mesaj la distrugerea obiectului:
<?php
class Test {
public function __destruct() {
echo 'Object destroyed';
}
}
$obj = new Test();
unset($obj); // Va apela destructorul
?>
Rezultatul executării codului:
'Object destroyed'
Exemplu
Exemplu cu eliberarea resurselor (închiderea unui fișier):
<?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');
// Lucrul cu fișierul...
unset($handler); // Va închide fișierul automat
?>
Rezultatul executării codului:
'File closed'
Vezi și
-
metoda
__construct,
care este constructorul clasei