トレイト内でのトレイトの使用
トレイトは、クラスと同様に、他のトレイトを使用することもできます。 例を見てみましょう。 次のような2つのメソッドを持つトレイトがあるとします:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
さらに、別のトレイトがあるとします:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
トレイト Trait2 に
トレイト Trait1 を接続してみましょう:
<?php
trait Trait2
{
use Trait1; // 最初のトレイトを使用
private function method3()
{
return 3;
}
}
?>
この接続の後、Trait2 は
自身のメソッドに加えて、トレイト Trait1
のメソッドも持つことになります。
これを確認しましょう:Test クラスを作成し、
そこにトレイト Trait2 を接続して、
私たちのクラスに最初のトレイトと2番目のトレイトの
メソッドの両方が現れることを確認します:
<?php
class Test
{
use Trait2; // 2番目のトレイトを接続
public function __construct()
{
echo $this->method1(); // 最初のトレイトのメソッド
echo $this->method2(); // 最初のトレイトのメソッド
echo $this->method3(); // 2番目のトレイトのメソッド
}
}
?>
私と同じトレイトを自分で作成し、
それらを Test クラスに接続してください。
このクラスに、接続されたトレイトのメソッドの結果の
合計を返す getSum メソッドを作成してください。