-1

私は現在、YouTube などから oop を学んでおり、それを使用して最初のプロジェクトを開始しました。途中で答えられなかった質問は..

2つのクラスがあるとします

class a{
  public function dosomething($var){

  }
}

class b{
}

クラスbからdosomething関数にアクセスできますか? もしそうなら、誰かが私を正しい方向に向けることができます.

ありがとう

4

2 に答える 2

1

次の 2 つのオプションがあります。

  1. クラスのインスタンスをクラスに渡しabその上でメソッドを呼び出します。(お勧め)
  2. クラスのメソッドをastatic にして、 のように呼び出しますa::method()。(絶対にやってはいけない)

最初の方法で問題を解決するには、bクラスを少し変更する必要があります。

class b{
    public function callMethodOfClassa(a $instanceOfa, $var) {
        $instanceOfa->dosomething($var);
    }
}

または:

class b {
    private $property;

    public function callMethodOfClassa($var) {
       $this->property->dosomething($var);
    }

    public function __construct(a $instanceOfa) {
        $this->property = $instanceOfa;
    }
}

$property2 番目の例では、渡されたインスタンスへの参照をここで呼び出されたフィールドに保持し、インスタンスのb初期化時に渡されます。

$instanceOfa = new a();
$instanceOfb = new b($instanceOfa);

PHP を使用したオブジェクト指向プログラミングの理解を深めるには、マニュアルをお読みください。

そして、2番目のサンプルの最初のサンプル デモの約束されたデモ(名前の変更をよりよく理解するため)。

于 2013-10-28T15:27:46.360 に答える