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
class 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
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:
'Object destroyed'
Példa
Példa erőforrások felszabadítására (fájl bezárása):
<?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:
'File closed'
Lásd még
-
a
__constructmetódus,
amely az osztály konstruktora