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
class MyClass {
public function __destruct() {
// tuhoajan koodi
}
}
Esimerkki
Yksinkertainen esimerkki luokasta, jossa on tuhoaja, joka tulostaa viestin olion tuhoutuessa:
<?php
class Test {
public function __destruct() {
echo 'Object destroyed';
}
}
$obj = new Test();
unset($obj); // Kutsuu tuhoajan
?>
Koodin suorituksen tulos:
'Object destroyed'
Esimerkki
Esimerkki resurssien vapauttamisesta (tiedoston sulkeminen):
<?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:
'File closed'
Katso myös
-
metodi
__construct,
joka on luokan konstruktori