PHP类扩展

时间:2010-04-24 02:00:02

标签: php class class-design extends

我有两个与另一个分开工作的类,但它们扩展了同一个类。是否可以让它们与扩展类的相同实例一起工作。我希望扩展类的构造函数只运行一次。

我知道这不对,但是这样:

<?php
$oApp = new app;
class a extends $oApp {}
class b extends $oApp {}

2 个答案:

答案 0 :(得分:2)

啊,在这种情况下,我相信您会希望将类作为其他两个类的参数传递:

/**
 * 
 */
class abParent{
    /**
     * @var app
     */
    protected $app;
    /**
     *
     * @param app $app
     */
    public function __construct(app &$app){
        $this->app = &$app;
    }
}

class a extends abParent{}
class b extends abParent{}


$app = new app();
$a = new a($app);
$b = new b($app);

var_dump($a, $b);

答案 1 :(得分:0)

你想要的是这个:

<?php
$oApp = new app;
class a extends app{}
class b extends app{}

如果您在子课程中有__constructor个,请确保他们拨打parent::__constructor,否则他们可能无法正常工作。