Método __destruct

La función __destruct es un método mágico en PHP que se llama automáticamente cuando se elimina un objeto de la memoria. Esto ocurre cuando el script termina su ejecución o cuando el objeto se destruye explícitamente. El método es útil para liberar recursos (por ejemplo, cerrar descriptores de archivos o conexiones a bases de datos).

Sintaxis

phpclass MyClass {
  public function __destruct() {
    // código del destructor
  }
}

Ejemplo

Ejemplo simple de una clase con destructor que muestra un mensaje cuando se destruye el objeto:

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

$obj = new Test();
unset($obj); // Invocará al destructor
?>

Resultado de la ejecución del código:

php'Object destroyed'

Ejemplo

Ejemplo con liberación de recursos (cierre de archivo):

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');
// Trabajar con el archivo...
unset($handler); // Cerrará el archivo automáticamente
?>

Resultado de la ejecución del código:

php'File closed'

Ver también

  • método __construct,
    que es el constructor de la clase