__destruct Metodu
__destruct işlevi, PHP'de bir nesne bellekten silindiğinde otomatik olarak çağrılan büyülü bir metottur. Bu, ya betik çalışmayı tamamladığında ya da nesne açıkça yok edildiğinde gerçekleşir. Bu metot, kaynakları serbest bırakmak (örneğin, dosya tanıtıcılarını veya veritabanı bağlantılarını kapatmak) için kullanışlıdır.
Sözdizimi
class MyClass {
public function __destruct() {
// yıkıcı metot kodu
}
}
Örnek
Nesne yok edildiğinde bir mesaj yazdıran, yıkıcı metoda sahip basit bir sınıf örneği:
<?php
class Test {
public function __destruct() {
echo 'Object destroyed';
}
}
$obj = new Test();
unset($obj); // Yıkıcı metodu çağıracak
?>
Kodun çalıştırılmasının sonucu:
'Object destroyed'
Örnek
Kaynakları serbest bırakma örneği (dosyayı kapatma):
<?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');
// Dosya ile çalışma...
unset($handler); // Dosyayı otomatik olarak kapatacak
?>
Kodun çalıştırılmasının sonucu:
'File closed'
Ayrıca Bakınız
-
__constructmetodu,
ki bu sınıfın kurucu metodudur