Выкарыстанне трэйтаў у трэйтах
Трэйты, падобна класам, таксама могуць выкарыстоўваць іншыя трэйты. Давайце паглядзім на прыкладзе. Хай у нас ёсць вось такі трэйт з двума метадамі:
<?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
,
які вяртае суму вынікаў метадаў падключаных
трэйтаў.