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. Бірінші трейтте
1 қайтаратын method1 әдісі болсын,
екінші трейтте - 2 қайтаратын method2 әдісі,
ал үшінші трейтте
- 3 қайтаратын method3 әдісі болсын.
Бұл әдістердің барлығы жеке (private) болсын.
Test сыныбын жасаңыз, ол біздің жасаған
үш трейтімізді де қолданады. Осы сыныпта
getSum деген ашық әдіс жасаңыз,
ол қосылған трейттердің әдістерінің нәтижелерінің қосындысын қайтарады.