Некалькі трэйтаў у Аб'ектна-Арыентаваным Праграмаванні ў 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
,
які вяртае суму вынікаў метадаў падключаных
трэйтаў.