メソッド __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