Metóda __destruct

Funkcia __destruct je magickou metódou v PHP, ktorá je automaticky volaná pri odstránení objektu z pamäte. To sa deje buď keď skript ukončí činnosť, alebo keď je objekt explicitne zničený. Metóda je užitočná pre uvoľnenie zdrojov (napríklad zatvorenie súborových deskriptorov alebo spojení s databázou).

Syntax

phpclass MyClass {
  public function __destruct() {
    // kód destruktora
  }
}

Príklad

Jednoduchý príklad triedy s destruktorom, ktorý vypíše správu pri zničení objektu:

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

$obj = new Test();
unset($obj); // Spustí destruktor
?>

Výsledok vykonania kódu:

php'Object destroyed'

Príklad

Príklad s uvoľnením zdrojov (zatvorenie súboru):

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');
// Práca so súborom...
unset($handler); // Automaticky zatvorí súbor
?>

Výsledok vykonania kódu:

php'File closed'

Pozri tiež