# Использование трейтов в трейтах

Трейты, подобно классам, также могут использовать другие трейты. Давайте посмотрим на примере. Пусть у нас есть вот такой трейт с двумя методами:

`<?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`, возвращающий сумму результатов методов подключенных трейтов.

← →
↑