1

まず、以下のように、クラス内の変数に拡張クラスを取得することは可能ですか?

class EG extends DH {

     public $var = // VALUE OF DH
}

第二に、私が行ってきた方法は、

class EG {

     public $var;
     public function __construct() {
         $this -> var = new DH();
     }
}

その理由は、DHクラスのメソッドをクラスの外で定義された関数に渡す必要があるからです。

ありがとう

4

1 に答える 1

2

それを行う正しい方法は、引数として渡すことです

class EG {
     public $var;
     public function __construct( DH $dh ) {
         $this -> var = $dh;
     }
}

これは依存性注入と呼ばれ、拡張よりも優先されます

継承が正しい方法である場合もあると付け加える必要がありますが、あなたの状況を説明すると、DIが正しい方法のように見えます。

于 2012-06-14T21:45:56.347 に答える