2

別のクラスとは別に動作する 2 つのクラスがありますが、それらは同じクラスを拡張します。それらを拡張クラスの同じインスタンスで動作させることは可能ですか? 拡張クラスのコンストラクターを一度だけ実行したいです。

私はこれが正しくないことを知っていますが、次のようなものです:

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

2 に答える 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子クラスに がある場合は、それらが を呼び出すことを確認してくださいparent::__constructor。そうしないと、適切に動作しない可能性があります。

于 2010-04-24T02:02:45.440 に答える