Методи __destruct

Функсияи __destruct як усули ҷодуӣ дар PHP мебошад, ки ба таври худкор вақти нест кардани объект аз хотира даъват карда мешавад. Ин ҳангоми анҷоми кори скрипт ё вақте ки объект ошкора нест карда мешавад, рух медиҳад. Усули мазкур барои озод кардани захираҳо (масалан, пӯшидани дескрипторҳои файл ё пайвастҳои ба БД) муфид аст.

Синтаксис

phpclass MyClass {
  public function __destruct() {
    // коди деструктор
  }
}

Намуна

Намунаи содаи синф бо деструктор, ки вақти нест кардани объект паём фиристода мешавад:

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

$obj = new Test();
unset($obj); // Деструкторро даъват мекунад
?>

Натиҷаи иҷрои код:

php'Object destroyed'

Намуна

Намуна бо озод кардани захираҳо (пӯшидани файл):

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');
// Кор бо файл...
unset($handler); // Файлро ба таври худкор мекунад
?>

Натиҷаи иҷрои код:

php'File closed'

Нигаред низ

  • методи __construct,
    ки сохтгари синф мебошад