継承先クラスにコンストラクタを作るときの注意

こんなことをしてしまうと、継承元のコンストラクタが無効になってしまうので注意。
どうしても継承先でコンストラクタを使用したい場合は、
明示的に継承元のコンストラクタを起動する。

例えば継承元のコンストラクタが「Database」という名前で、継承先のコンストラクタが「Database2」だった場合は、以下のようにする。ちなみに、この仕様はPHP4のものを前提にしているが、PHP5でも有効に動く。ただし、PHP5純正の方式では、コンストラクタの命名方法が異なるらしい(調べてない)。

function Database2($option) {

  parent::Database($option);

}

これでOK。引数を橋渡ししたい場合も、すでにDatabase2では取得しているはずなので、そのまま引き渡せば大丈夫。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です