Metod __destruct

Funkcija __destruct je magična metoda u PHP-u, koja se automatski poziva pri brisanju objekta iz memorije. Ovo se dešava ili kada skripta završi rad, ili kada se objekat eksplicitno uništi. Metod je koristan za oslobađanje resursa (na primer, zatvaranje fajl deskriptora ili veza sa bazom podataka).

Sintaksa

phpclass MyClass {
  public function __destruct() {
    // kod destruktora
  }
}

Primer

Jednostavan primer klase sa destruktorom, koji ispisuje poruku pri uništavanju objekta:

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

$obj = new Test();
unset($obj); // Pozvaće destruktor
?>

Rezultat izvršavanja koda:

php'Object destroyed'

Primer

Primer sa oslobađanjem resursa (zatvaranje fajla):

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');
// Rad sa fajlom...
unset($handler); // Zatvoriće fajl automatski
?>

Rezultat izvršavanja koda:

php'File closed'

Pogledajte takođe