Metodi __destruct

Funktio __destruct on maaginen metodi PHP:ssä, jota kutsutaan automaattisesti, kun olio poistetaan muistista. Tämä tapahtuu joko kun skripti päättyy tai kun olio tuhotaan eksplisiittisesti. Metodi on hyödyllinen resurssien vapauttamiseen (esimerkiksi tiedostokahvojen tai tietokantayhteyksien sulkemiseen).

Syntaksi

phpclass MyClass {
  public function __destruct() {
    // tuhoajan koodi
  }
}

Esimerkki

Yksinkertainen esimerkki luokasta, jossa on tuhoaja, joka tulostaa viestin olion tuhoutuessa:

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

$obj = new Test();
unset($obj); // Kutsuu tuhoajan
?>

Koodin suorituksen tulos:

php'Object destroyed'

Esimerkki

Esimerkki resurssien vapauttamisesta (tiedoston sulkeminen):

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');
// Työskentely tiedoston kanssa...
unset($handler); // Sulkee tiedoston automaattisesti
?>

Koodin suorituksen tulos:

php'File closed'

Katso myös