Gebruik van Traits in Traits
Traits, soos klasse, kan ook ander traits gebruik. Kom ons kyk na 'n voorbeeld. Laat ons sê ons het die volgende trait met twee metodes:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Laat ons sê ons het ook nog 'n ander trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Kom ons koppel trait Trait1 aan
trait Trait2:
<?php
trait Trait2
{
use Trait1; // gebruik die eerste trait
private function method3()
{
return 3;
}
}
?>
Na so 'n koppeling sal dit blyk dat Trait2,
behalwe sy eie metodes, ook die metodes van
trait Trait1 sal hê. Kom ons toets dit: maak 'n
klas Test, koppel trait Trait2 daaraan
en maak seker dat in ons klas
die metodes van beide die eerste trait
en die tweede verskyn:
<?php
class Test
{
use Trait2; // koppel die tweede trait
public function __construct()
{
echo $this->method1(); // metode van die eerste trait
echo $this->method2(); // metode van die eerste trait
echo $this->method3(); // metode van die tweede trait
}
}
?>
Maak self dieselfde traits soos ek
en koppel dit aan die klas Test.
Maak in hierdie klas 'n metode getSum
wat die som van die resultate van die gekoppelde
traits se metodes teruggee.