これはクラスがそれを行う方法ですか?
Class Main
{
$this->a = new A();
$this->b = new B();
$this->c = new C();
$this->b->doTranslate($this->a->saySomething());
}
そして、これは特性がそれを行う方法ですよね?
Class Main {
use A;
use B;
use C;
$this->doTranslate($this->saySomething());
}
トレイトについてはまったく詳しくありませんが、新しい PHP 5.4 のトレイトの例を見ると、1 つのケースでしか役に立たないようです。A class only be extended once to use $this together, but we can use multiple traits.
質問 1:基本クラスよりもトレイトを使用する利点はそれだけですか?
質問 2:trait A, B, and C
すべてに という名前の関数がある場合、どのトレイトが使用されるかを PHP がどのように決定するかexample()
を試してみると? $this->example();
何が起こるだろう?
さらに、テキストの壁を書く代わりに。短いコード例と短い概要を提示して、見て理解できるようにしてください。私は特性に精通しておらず、それらが実際に何であるかを知りません。