0

私は自分のサイトの基本的なフレームワークを構築しようとしていますが、それを行うにはプライマリ クラスを拡張する必要がありますが、プライマリ クラスのコンストラクタは、次のことを行う場合にのみ機能します -parent::__construct() 以下に例を示します。

class prime
{
 protected __construct()
 {
   //code
 }
}

class subPrime extends prime
{
  protected __construct()
  {
    //code
  }

}

誰かが解決策を知っていますか?

4

2 に答える 2

3

PHPマニュアルによると、親コンストラクターは自動的に呼び出されません:

注: 子クラスでコンストラクターが定義されている場合、親コンストラクターは暗黙的に呼び出されません。親コンストラクターを実行するには、子コンストラクター内で parent::__construct() を呼び出す必要があります。

これは正しく、予想され、望ましい動作であり、十分に文書化されています。

于 2012-07-27T19:28:08.223 に答える
1

通常、サブクラスから親クラスのコンストラクターを呼び出したい場合は、提案どおりに実行します (parent::__construct())。または、サブクラスでコンストラクター メソッドをオーバーライドしないでください。

子クラスのコンストラクターの動作を変更する必要がない場合は、親のメソッドをオーバーライドしないことをお勧めします。

于 2012-07-27T19:23:44.890 に答える