Множество трейтове в ООП в 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,
връщащ сумата от резултатите на методите на свързаните
трейтове.