Metoden __destruct

Funksjonen __destruct er en magisk metode i PHP som automatisk kalles når et objekt slettes fra minnet. Dette skjer enten når skriptet avsluttes, eller når objektet eksplisitt ødelegges. Metoden er nyttig for å frigjøre ressurser (for eksempel lukking av fildeskriptorer eller databaseforbindelser).

Syntaks

phpclass MyClass {
  public function __destruct() {
    // kode for destruktør
  }
}

Eksempel

Et enkelt eksempel på en klasse med en destruktør som viser en melding når objektet ødelegges:

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

$obj = new Test();
unset($obj); // Vil kalle destruktøren
?>

Resultat av kjøring:

php'Object destroyed'

Eksempel

Eksempel med frigjøring av ressurser (lukking av fil):

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');
// Arbeid med filen...
unset($handler); // Lukker filen automatisk
?>

Resultat av kjøring:

php'File closed'

Se også

  • metoden __construct,
    som er konstruktøren til klassen