Método __destruct

A função __destruct é um método mágico em PHP que é chamado automaticamente quando um objeto é removido da memória. Isso ocorre quando o script termina sua execução ou quando o objeto é explicitamente destruído. O método é útil para liberar recursos (por exemplo, fechar descritores de arquivo ou conexões com o banco de dados).

Sintaxe

phpclass MyClass {
  public function __destruct() {
    // código do destrutor
  }
}

Exemplo

Um exemplo simples de uma classe com um destrutor que exibe uma mensagem quando o objeto é destruído:

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

$obj = new Test();
unset($obj); // Chamará o destrutor
?>

Resultado da execução do código:

php'Object destroyed'

Exemplo

Exemplo com liberação de recursos (fechamento de arquivo):

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');
// Trabalhando com o arquivo...
unset($handler); // Fechará o arquivo automaticamente
?>

Resultado da execução do código:

php'File closed'

Veja também