>> PHP入門トップに戻る

コンストラクタ、デストラクタ

今回はクラスのコンストラクタ、デストラクタについて説明します。

コンストラクタとは、クラスが生成されたときに自動的に実行される関数のことです。
対して、デストラクタとは、クラスが消滅するときに自動的に実行される関数のことです。
その実行タイミングが決まっていること以外は普通の関数とは変わりませんが、
戻り値が返せません。

コンストラクタとデストラクタの定義方法を説明します。
それぞれ関数名が決まっています。

//コンストラクタ
アクセス修飾子 function __construct(){
~処理~
}

//デストラクタ
アクセス修飾子 function __destruct(){
~処理~
}

と書きます。
construct,destructの前についてるアンダーバーは2本なので注意して下さい。
これを使って定義すると以下のようになります。

01<?php
02    class OBJECT{
03        public $figure;
04        public $value;
05         
06        public function func(){
07            echo "テスト実行<br>";
08        }
09        public function __construct(){
10            echo "コンストラクタ実行<br>";
11        }
12        public function __destruct(){
13            echo "デストラクタ実行<br>";
14        }
15    }
16     
17    $test = new OBJECT();
18     
19    $test->func();
20     
21     
22?>

これを実行すると、「コンストラクタ実行」、「テスト実行」、「デストラクタ実行」と順番に表示されます。
実行される順番を見ても、
コンストラクタがインスタンス生成時、
デストラクタがインスタンス消滅時(プログラム終了時)と一致してるのが分かります。
コンストラクタは変数の初期化などを行うためによく使われます。
コンストラクタはインスタンス生成時に実行されるということで、
外部から実行されてることと同じ意味になるので、アクセス修飾子はpublicにする必要があります。

今回の説明は以上です。
次回は継承について説明します。


>> 【クラスの継承】に進む
>> PHP入門トップに戻る