PHPのOOPにおける複数のトレイト
クラスでは、1つではなく複数の
トレイトを使用することができます。
これが、継承に対するトレイトの利点の
現れです。クラスで使用したい
トレイトは、キーワード use の後に
カンマで区切って指定できます。
例を見てみましょう。 2つのトレイトがあるとします。 1つ目:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
2つ目:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
クラスでこれらのトレイトを使用します:
<?php
class User
{
use Helper1, Helper2; // トレイトを接続
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
3 つのトレイトを作成し、それぞれ
Trait1、Trait2、
Trait3 という名前にします。
最初のトレイトには 1 を返す
メソッド method1 を、
2番目のトレイトには 2 を返す
メソッド method2 を、
3番目のトレイトには 3 を返す
メソッド method3 を実装してください。
これらのメソッドはすべてプライベートとします。
Test というクラスを作成し、
これら3つのトレイトをすべて使用してください。
このクラスに、接続したトレイトのメソッドの結果の
合計を返すパブリックメソッド getSum
を実装してください。