2

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

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

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

2 回答 2

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);
于 2010-04-24T02:40:13.087 回答
0

你想要的是这样的:

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

如果__constructor子类中有 s,请确保它们调用parent::__constructor,否则它们可能无法正常工作。

于 2010-04-24T02:02:45.440 回答