Metoda __destruct

Funksioni __destruct është një metodë magjike në PHP, e cila thirret automatikisht kur objekti fshihet nga memoria. Kjo ndodh ose kur skripta përfundon, ose kur objekti shkatërrohet në mënyrë të qartë. Metoda është e dobishme për të liruar burimet (për shembull, mbylljen e deskriptorëve të skedarëve ose lidhjeve me bazën e të dhënave).

Sintaksa

phpclass MyClass {
  public function __destruct() {
    // kodi i destruktorit
  }
}

Shembull

Një shembull i thjeshtë i një klase me një destruktor, i cili shfaq një mesazh kur objekti shkatërrohet:

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

$obj = new Test();
unset($obj); // Do të thërrasë destruktorin
?>

Rezultati i ekzekutimit të kodit:

php'Object destroyed'

Shembull

Shembull me lirimin e burimeve (mbyllja e skedarit):

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');
// Punë me skedarin...
unset($handler); // Do ta mbyllë skedarin automatikisht
?>

Rezultati i ekzekutimit të kodit:

php'File closed'

Shihni gjithashtu

  • metoda __construct,
    e cila është konstruktori i klasës