別のクラスとは別に動作する 2 つのクラスがありますが、それらは同じクラスを拡張します。それらを拡張クラスの同じインスタンスで動作させることは可能ですか? 拡張クラスのコンストラクターを一度だけ実行したいです。
私はこれが正しくないことを知っていますが、次のようなものです:
<?php
$oApp = new app;
class a extends $oApp {}
class b extends $oApp {}
別のクラスとは別に動作する 2 つのクラスがありますが、それらは同じクラスを拡張します。それらを拡張クラスの同じインスタンスで動作させることは可能ですか? 拡張クラスのコンストラクターを一度だけ実行したいです。
私はこれが正しくないことを知っていますが、次のようなものです:
<?php
$oApp = new app;
class a extends $oApp {}
class b extends $oApp {}
ああ、その場合、クラスを他の 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);
あなたが欲しいのはこれです:
<?php
$oApp = new app;
class a extends app{}
class b extends app{}
__constructor
子クラスに がある場合は、それらが を呼び出すことを確認してくださいparent::__constructor
。そうしないと、適切に動作しない可能性があります。