如何从静态方法的返回对象初始化派生类?

时间:2012-05-10 07:23:40

标签: php oop

如何初始化课程'基类由构造中的返回值?让我们说我把它作为一个基类:

class Base
{
    public function Foo()
    {
    }

    private $_var;
}

我还有一个来自另一个类的静态方法,它返回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..
    }
}

这有解决方案/解决方法吗?

2 个答案:

答案 0 :(得分:0)

虽然这似乎是一种不常见的做法,但你可能意味着:

class Derived extends Base
{
    public function __construct()
    {
        parent::__construct(MyStaticClass::Get());
    }
}

答案 1 :(得分:0)

我还没有找到直接做到这一点的方法,但是如果你愿意放弃class,你可以用javascript风格的OOP来完成。请参阅https://stackoverflow.com/a/10468793/1369091

上的答案