「PHPでオブジェクト指向入門5~デストラクタ~」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
前回記事、[[PHPでオブジェクト指向入門4~コンストラクタ~]]では、インスタンス化されたタイミングでオブジェクトに対して引数を加えて初期化するという
今ストラクトについて学びました。今回はそのオブジェクトを破棄するデストラクトについて記述していきます。
9月19日記事
~
~
目次
#contents
~
~
----
~
*ちゃんと掃除をしよう
コンクラスタの反対で、オブジェクトを破棄するために使われます。
クラスを定義して利用したら、当然メモリが確保されます。メモリ不足にならないように、クラスで定義したオブジェクトを破棄することを&color(red){明示的にしたい場合}があります。
そんな記事について書いていきたいと思います。ぶっちゃけて言えば、そんなに使わないです。
~
~
*コード
クラス名はなんでもよかったのですが、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().'<br>';
~
~
クラスまたはメソッドが実行中か実行されていないかはPHPの定義済み定数、__CLASS__や__METHOD__で確認ができます。使い方は[[PHPの定義済み定数]]をご参照ください。
~
~
*まとめ
あまり使わないですが、破棄されるタイミングで他に何かしたい場合に使われます。
~
~
以上