我有两个与另一个分开工作的类,但它们扩展了同一个类。是否可以让它们与扩展类的相同实例一起工作。我希望扩展类的构造函数只运行一次。
我知道这不对,但是这样:
<?php
$oApp = new app;
class a extends $oApp {}
class b extends $oApp {}
答案 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
,否则他们可能无法正常工作。