0

コンストラクトの戻り値でクラスの基本クラスを初期化するにはどうすればよいですか?これを基本クラスとして持っているとしましょう:

class Base
{
    public function Foo()
    {
    }

    private $_var;
}

また、別のクラスからのこの1つの静的メソッドがあり、Baseクラスを返します。

class MyStaticClass
{
    public static function Get()
    {
        return new Base();
    }
}

そして今、私はここで基本クラスから派生しています:

class Derived extends Base
{
    public function __construct()
    {
        // Here, how can I initialize Base class with
        // object MyStaticClass returns? Something like

        parent = MyStaticClass::Get(); // This doesn't obviously work..
    }
}

これに対する解決策/回避策はありますか?

4

2 に答える 2

0

私はそれを直接行う方法を見つけていませんが、あなたが手放すことをいとわないのであればclass、javascriptスタイルのOOPでこれを達成することができます。https://stackoverflow.com/a/10468793/1369091で私の答えを参照してください

于 2012-05-10T08:44:51.370 に答える
0

それを行うのは珍しい方法のように思えますが、おそらくこれを意味します:

class Derived extends Base
{
    public function __construct()
    {
        parent::__construct(MyStaticClass::Get());
    }
}
于 2012-05-10T07:30:47.010 に答える