PHP4でのコンストラクタの挙動の覚書
2010/04/21 | PHPの基本
PHPはバージョン5からクラスのコンストラクタを__constructと記述できるようになった。もちろんバージョン4の時と同様に、クラス名と同じ名前のメソッドでもOKだ。PHP4の時のクラスを拡張した際のコンストラクタの挙動について、毎回忘れることがあるのでメモしておく。
class hoge
{
function hoge(){print(‘hoge’);}
}
class fuga extends hoge
{
function fuga(){print(‘fuga’);}
}
$obj=new fuga;
このコードを実行した際にhogeクラスで用意したコンストラクタhoge()は動作しない。実行結果はこうなる。
fuga
parent::__construct()みたいに呼び出すのと同様に$this->hoge()と呼び出す必要がある。
いつも「どうだったっけ」となるのでメモしておく。