Трейттерді трейттерде қолдану
Трейттер, класстар сияқты, басқа трейттерді де қолдана алады. Мысал арқылы қарастырайық. Бізде екі әдісі бар мынадай трейт бар делік:
<?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 әдісін жасаңыз,
ол қосылған трейттер әдістерінің нәтижелерінің қосындысын қайтарады.