カテゴリー:
クラスとオブジェクト
閲覧数:839 配信日:2010-04-29 00:00
親クラスメソッド内
$this->メソッド()
・子クラスのメソッドが呼ばれる(実質的に「子クラス::メソッド()」)
※クラスを継承したため(=「子クラス」は、「親クラス(派生元のクラス)」が持つ全てのプロパティとメソッドを受け継いだため)
子クラスメソッド内
$this->メソッド()
・子クラスのメソッドが呼ばれる(実質的に「子クラス::メソッド()」)
parent::メソッド()
・親クラスのメソッドが呼ばれる
class AIRPOT{//基底クラス
function func(){//⑨メンバ関数funcが呼び出される
echo "[ 意味合い的には、AIRPOT::func() ]←⑨AIRPORT(基底)クラスのメンバ関数funcが呼び出される<br /> ";
echo '[ $this->func2() ]←⑩AIRPORT(基底)クラス内で、メンバ関数func2をコール<br />';
$this->func2();//←⑩メンバ関数func2をコール
echo '<br />⑫AIR(基底)クラス内における$thisを、「var_dump($this);」してみる。$thisとは、';
var_dump($this);//⑫
}
function func2(){
echo "I'm [ AIRPOT::func2() ]<br />←呼ばれない!!";
}
}
class STATION extends AIRPOT{//派生クラスSTATION
function STATION(){//②コンストラクタ実行
echo '[ $this->func() ]←③STATION(派生)クラス内で、メンバ関数funcをコール<br />';
$this->func();//③メンバ関数funcをコール
echo "<hr />";
echo "[ parent::func() ]←⑧STATION(派生)クラス内で、基底クラスで定義したメンバ関数funcをコール<br />";
parent::func();//⑧基底クラスで定義したメンバ関数funcをコール
}
function func(){//④メンバ関数funcが呼び出される
echo "[ 意味合い的には、STATION::func() ]←④STATION(派生)クラスのメンバ関数funcが呼び出される<br /> ";
echo '[ $this->func2() ]←⑤STATION(派生)クラス内で、メンバ関数func2をコール<br />';
$this->func2();//←⑤メンバ関数func2をコール
echo '<br />⑦STATION(派生)クラス内における$thisを、「var_dump($this);」してみる。$thisとは、';
var_dump($this);//⑦
}
function func2(){//⑥メンバ関数func2が呼び出される
echo "[ 意味合い的には、STATION::func2() ]←⑥⑪STATION(派生)クラスのメンバ関数func2が呼び出される<br />";
}
}
new STATION;//①コンストラクタの動きを見るためだけに実行。左辺がないのは、インスタンス(オブジェクト)を変数に格納させるつもりがないだけ
// 処理結果
// [ $this->func() ]←③STATION(派生)クラス内で、メンバ関数funcをコール
// [ 意味合い的には、STATION::func() ]←④STATION(派生)クラスのメンバ関数funcが呼び出される
// [ $this->func2() ]←⑤STATION(派生)クラス内で、メンバ関数func2をコール
// [ 意味合い的には、STATION::func2() ]←⑥⑪STATION(派生)クラスのメンバ関数func2が呼び出される
// ⑦STATION(派生)クラス内における$thisを、「var_dump($this);」してみる。$thisとは、object(STATION)#1 (0) { }
// [ parent::func() ]←⑧STATION(派生)クラス内で、基底クラスで定義したメンバ関数funcをコール
// [ 意味合い的には、AIRPOT::func() ]←⑨AIRPORT(基底)クラスのメンバ関数funcが呼び出される
// [ $this->func2() ]←⑩AIRPORT(基底)クラス内で、メンバ関数func2をコール
// [ 意味合い的には、STATION::func2() ]←⑥⑪STATION(派生)クラスのメンバ関数func2が呼び出される
// ⑫AIR(基底)クラス内における$thisを、「var_dump($this);」してみる。$thisとは、object(STATION)#1 (0) { }