Трейты, подобно классам, также могут использовать другие трейты. Давайте посмотрим на примере. Пусть у нас есть вот такой трейт с двумя методами:
<?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
и убедимся, что в нашем классе
появятся методы как первого трейта, так и второго:
<?php
class Test
{
use Trait2; // подключаем второй трейт
public function __construct()
{
echo $this->method1(); // метод первого трейта
echo $this->method2(); // метод первого трейта
echo $this->method3(); // метод второго трейта
}
}
?>
Самостоятельно сделайте такие же трейты,
как у меня и подключите их к классу Test
.
Сделайте в этом классе метод getSum
,
возвращающий сумму результатов методов подключенных
трейтов.