Некалькі трэйтаў у Аб'ектна-Арыентаваным Праграмаванні ў PHP
У класе можна выкарыстоўваць не адзін, а некалькі
трэйтаў. У гэтым і праяўляецца іх перавага
перад наследаваннем. Патрэбныя для выкарыстання
ў класе трэйты можна паказаць праз коску
пасля ключавога слова use.
Давайте паглядзім на прыкладзе. Хай у нас ёсць два трэйты. Першы:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Другі:
<?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. Хай у першым
трэйце будзе метад method1, які вяртае
1, у другім трэйце - метад method2,
які вяртае 2, а ў трэцім трэйце
- метад method3, які вяртае 3.
Хай усе гэтыя метады будуць прыватнымі.
Зрабіце клас Test, які выкарыстоўвае
ўсе тры створаных намі трэйты. Зрабіце ў
гэтым класе публічны метад getSum,
які вяртае суму вынікаў метадаў падключаных
трэйтаў.