Användning av traits i traits
Traits, liksom klasser, kan också använda andra traits. Låt oss titta på ett exempel. Låt oss säga att vi har ett trait med två metoder:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Låt oss säga att vi också har ytterligare ett trait:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Låt oss ansluta traitet Trait1
till traitet Trait2:
<?php
trait Trait2
{
use Trait1; // använder det första traitet
private function method3()
{
return 3;
}
}
?>
Efter en sådan anslutning kommer Trait2
förutom sina egna metoder också att ha metoderna
från traitet Trait1. Låt oss kontrollera detta: skapa
en klass Test, anslut traitet
Trait2 till den och se till att i vår klass
dyker metoderna upp från både det första traitet
och det andra:
<?php
class Test
{
use Trait2; // ansluter det andra traitet
public function __construct()
{
echo $this->method1(); // metod från första traitet
echo $this->method2(); // metod från första traitet
echo $this->method3(); // metod från andra traitet
}
}
?>
Gör samma traits på egen hand
som jag har och anslut dem till klassen Test.
Skapa en metod getSum i denna klass
som returnerar summan av resultaten från metoderna i de anslutna
traitsen.