A __destrukt metódus

A __destruct függvény egy mágikus metódus a PHP-ban, amely automatikusan meghívódik, amikor egy objektumot törölnek a memóriából. Ez akkor történik, amikor a szkript befejezi a futást, vagy amikor az objektumot explicit megsemmisítik. A metódus hasznos erőforrások felszabadításához (például fájlleírók vagy adatbázis-kapcsolatok bezárásához).

Szintaxis

phpclass MyClass {
  public function __destruct() {
    // a destruktor kódja
  }
}

Példa

Egy egyszerű példa egy destruktorral rendelkező osztályra, amely üzenetet jelenít meg az objektum megsemmisítésekor:

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

$obj = new Test();
unset($obj); // Meghívja a destruktort
?>

A kód végrehajtásának eredménye:

php'Object destroyed'

Példa

Példa erőforrások felszabadítására (fájl bezárása):

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');
// Munka a fájllal...
unset($handler); // Automatikusan bezárja a fájlt
?>

A kód végrehajtásának eredménye:

php'File closed'

Lásd még

  • a __construct metódus,
    amely az osztály konstruktora