Metodas __destruct
Funkcija __destruct yra magiškas metodas PHP, kuris automatiškai iškviečiamas pašalinant objektą iš atminties. Tai atsitinka arba kai scenarijus baigia darbą, arba kai objektas yra aiškiai sunaikinamas. Metodas naudingas išteklių atlaisvinimui (pavyzdžiui, failų deskriptorių uždarymui ar ryšių su duomenų baze atsijungimui).
Sintaksė
class MyClass {
public function __destruct() {
// destruktoriaus kodas
}
}
Pavyzdys
Paprastas klasės su destruktoriumi pavyzdys, kuris išveda pranešimą sunaikinant objektą:
<?php
class Test {
public function __destruct() {
echo 'Object destroyed';
}
}
$obj = new Test();
unset($obj); // Sukels destruktoriaus iškvietimą
?>
Kodo vykdymo rezultatas:
'Object destroyed'
Pavyzdys
Pavyzdys su ištekliais atlaisvinimu (failo uždarymas):
<?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');
// Darbas su failu...
unset($handler); // Automatiškai uždarys failą
?>
Kodo vykdymo rezultatas:
'File closed'
Taip pat žiūrėkite
-
metodas
__construct,
kuris yra klasės konstruktorius