Gebruik van traits in traits
Traits kunnen, net als klassen, ook andere traits gebruiken. Laten we een voorbeeld bekijken. Stel dat we de volgende trait hebben met twee methoden:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Stel dat we ook nog een andere trait hebben:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Laten we trait Trait1 verbinden met
trait Trait2:
<?php
trait Trait2
{
use Trait1; // gebruik de eerste trait
private function method3()
{
return 3;
}
}
?>
Na een dergelijke verbinding zal Trait2,
naast zijn eigen methoden, ook de methoden
van trait Trait1 hebben. Laten we dit controleren: we maken een
klasse Test, verbinden de trait
Trait2 ermee en zorgen dat in onze klasse
zowel de methoden van de eerste trait,
als de tweede verschijnen:
<?php
class Test
{
use Trait2; // verbind de tweede trait
public function __construct()
{
echo $this->method1(); // methode van de eerste trait
echo $this->method2(); // methode van de eerste trait
echo $this->method3(); // methode van de tweede trait
}
}
?>
Maak zelf dezelfde traits,
als ik en verbind ze met de klasse Test.
Maak in deze klasse een methode getSum,
die de som van de resultaten van de methoden van de verbonden
traits retourneert.