Traits használata traitsekben
A traitsek, hasonlóan az osztályokhoz, más traitseket is használhatnak. Nézzük ezt egy példán keresztül. Tegyük fel, hogy van egy ilyen traitünk két metódussal:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Tegyük fel, hogy van még egy másik traitünk:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Kapcsoljuk a Trait2 traithoz
a Trait1 traitet:
<?php
trait Trait2
{
use Trait1; // az első trait használata
private function method3()
{
return 3;
}
}
?>
Ezen kapcsolás után az eredmény az lesz, hogy a Trait2
a saját metódusai mellett a Trait1 trait
metódusait is tartalmazni fogja. Ellenőrizzük ezt: készítsünk egy
Test osztályt, kapcsoljuk hozzá a Trait2 traitet,
és győződjünk meg arról, hogy az osztályunkban
megjelennek mind az első, mind a második trait metódusai:
<?php
class Test
{
use Trait2; // a második trait csatlakoztatása
public function __construct()
{
echo $this->method1(); // az első trait metódusa
echo $this->method2(); // az első trait metódusa
echo $this->method3(); // a második trait metódusa
}
}
?>
Készítsen önállóan ugyanolyan traitseket,
mint nekem, és kapcsolja őket a Test osztályhoz.
Készítsen ebben az osztályban egy getSum metódust,
amely visszaadja a csatlakoztatott traitsek metódusainak
eredményeinek összegét.