Traitide kasutamine traitides
Traitid, sarnaselt klassidele, võivad samuti kasutada teisi traite. Vaatame näidet. Oletame, et meil on selline trait kahe meetodiga:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Oletame, et meil on ka veel üks trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Ühendame traiti Trait2
trait Trait1:
<?php
trait Trait2
{
use Trait1; // kasutame esimest traiti
private function method3()
{
return 3;
}
}
?>
Pärast sellist ühendamist saab Trait2
peale oma meetodite veel ka trait-i Trait1
meetodid. Kontrollime seda: teeme
klassi Test, ühendame sellele traiti
Trait2 ja veendume, et meie klassis
ilmuvad nii esimese traiti
kui ka teise meetodid:
<?php
class Test
{
use Trait2; // ühendame teise traiti
public function __construct()
{
echo $this->method1(); // esimese traiti meetod
echo $this->method2(); // esimese traiti meetod
echo $this->method3(); // teise traiti meetod
}
}
?>
Tehke iseseisvalt samasugused traitid,
nagu minul ja ühendage need klassiga Test.
Tehke selles klassis meetod getSum,
mis tagab ühendatud traitide meetodite
tulemuste summa.