2011-07-06 10 views
0

サブクラスを親静的メソッドから初期化するにはどうすればよいですか?PHP親の静的メソッドからサブクラスの新しいインスタンスを初期化しますか?

PHP 5.3では遅延静的バインディングを使用し、親クラスのメソッドではstaticキーワードを使用して、サブクラスの静的変数を取得できました。親のサブクラスの新しいインスタンスをどのように初期化するのですかstaticメソッド?

ありがとうございました。

+1

そのような種類のものについてはよく知られているデザインパターンがありますが、もう少し正確にしてください。**どのような結果**を取得しようとしていますか?なぜあなたはそれをしたいのですか?正しいデザインパターンにあなたを誘導することができます。 – SteeveDroz

+1

..または厳格な「デザインパターン」に執着していない人にとっては、あなたの問題解決のためにあなたを導くことができます。 –

答えて

5

静的変数やそれほど混乱しないものは必要ありません。あなたは新しいBを取得しますb::foo()呼び出す場合

class a { 
    public static function foo() { return new static; } 
} 

class b extends a { } 

:ここで私が思い付くことができます最短例です。

関連する問題