前回記事、PHPでオブジェクト指向入門4~コンストラクタ~では、インスタンス化されたタイミングでオブジェクトに対して引数を加えて初期化するという
コンストラクトについて学びました。今回はそのオブジェクトを破棄するデストラクトについて記述していきます。
9月19日記事
目次
コンクラスタの反対で、オブジェクトを破棄するために使われます。
クラスを定義して利用したら、当然メモリが確保されます。メモリ不足にならないように、クラスで定義したオブジェクトを破棄することを
明示的にしたい場合
があります。
そんな記事について書いていきたいと思います。ぶっちゃけて言えば、そんなに使わないです。
クラス名はなんでもよかったのですが、destructの勉強なので、Obj_Destructにしました。
classを定義したファイル(Obj_Destruct.phpの方)
<?php class Obj_Destruct{ public $a; public $b; public function __construct($a,$b){ $this->a = $a; $this->b = $b; } public function __destruct(){ print '<p>'.__CLASS__.'オブジェクトは破棄された。</p>'; } public function Show() { print "メンバ変数として、{$this->a}と{$this->b}が登録されています。"; } }
呼び出す方(index.phpの方)
<?php require_once ('../class/Obj_Destruct.php'); $o = new Obj_Destruct(1,"moji"); //echo __CLASS__;と書いても表示はされません。 $o->Show();
クラスまたはメソッドが実行中か実行されていないかはPHPの定義済み定数、__CLASS__や__METHOD__で確認ができます。使い方はPHPの定義済み定数をご参照ください。
あまり使わないですが、破棄されるタイミングで他に何かしたい場合に使われます。
次はPHPでオブジェクト指向入門6~静的メソッド~です。
以上