Matumizi ya Traits katika Traits
Traits, kama vile madarasa, pia wanaweza kutumia traits zingine. Hebu tuangalie kwa mfano. Tuchukulie tuna trait kama hii na mbinu mbili:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Tuchukulie tuna trait nyingine:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Wacha tuunganishe trait Trait1 kwenye
trait Trait2:
<?php
trait Trait2
{
use Trait1; // tunatumia trait ya kwanza
private function method3()
{
return 3;
}
}
?>
Baada ya muunganisho kama huo, itatokea kwamba Trait2
zaidi ya mbinu zake mwenyewe itakuwa na mbinu za
trait Trait1. Hebu tuangalie hili: tufanye
darasa Test, tuunganishe trait
Trait2 na tuhakikishe kuwa katika darasa letu
zitaonekana mbinu za trait ya kwanza,
na pia ya pili:
<?php
class Test
{
use Trait2; // tunaunganisha trait ya pili
public function __construct()
{
echo $this->method1(); // mbinu ya trait ya kwanza
echo $this->method2(); // mbinu ya trait ya kwanza
echo $this->method3(); // mbinu ya trait ya pili
}
}
?>
Kwa kujitegemea fanya traits kama zile nilizo nazo,
kama mimi na uziunganishe kwenye darasa Test.
Fanya katika darasa hili mbinu getSum,
inarudisha jumla ya matokeo ya mbinu za traits zilizounganishwa.