Metodo __destruct

La funzione __destruct è un metodo magico in PHP che viene chiamato automaticamente quando un oggetto viene rimosso dalla memoria. Ciò avviene quando lo script termina l'esecuzione o quando l'oggetto viene esplicitamente distrutto. Il metodo è utile per liberare risorse (ad esempio, chiudere descrittori di file o connessioni al database).

Sintassi

phpclass MyClass {
  public function __destruct() {
    // codice del distruttore
  }
}

Esempio

Un semplice esempio di classe con un distruttore che visualizza un messaggio quando l'oggetto viene distrutto:

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

$obj = new Test();
unset($obj); // Chiamerà il distruttore
?>

Risultato dell'esecuzione del codice:

php'Object destroyed'

Esempio

Esempio con liberazione di risorse (chiusura di un file):

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');
// Lavora con il file...
unset($handler); // Chiuderà il file automaticamente
?>

Risultato dell'esecuzione del codice:

php'File closed'

Vedi anche

  • metodo __construct,
    che è il costruttore della classe