0

如何通过构造中的返回值初始化类的基类?假设我有这个作为基类:

class Base
{
    public function Foo()
    {
    }

    private $_var;
}

我也有来自另一个类的这个静态方法,它返回基类:

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 Derived extends Base
{
    public function __construct()
    {
        parent::__construct(MyStaticClass::Get());
    }
}
于 2012-05-10T07:30:47.010 回答
0

我还没有找到直接做到这一点的方法,但如果你愿意放手class,你可以用 javascript 风格的 OOP 来完成。在https://stackoverflow.com/a/10468793/1369091上查看我的答案

于 2012-05-10T08:44:51.370 回答