Brug af træk i træk
Træk, ligesom klasser, kan også bruge andre træk. Lad os se på et eksempel. Lad os sige, at vi har følgende træk med to metoder:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
Lad os sige, at vi også har endnu et træk:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
Lad os tilknytte trækket Trait1 til
trækket Trait2:
<?php
trait Trait2
{
use Trait1; // bruger det første træk
private function method3()
{
return 3;
}
}
?>
Efter en sådan tilknytning vil det resultere i, at Trait2
foruden sine egne metoder også vil have metoderne
fra trækket Trait1. Lad os kontrollere dette: lad os lave
en klasse Test, tilknytte trækket
Trait2 til den og sikre os, at vores klasse
får både metoder fra det første træk
og det andet:
<?php
class Test
{
use Trait2; // tilslutter det andet træk
public function __construct()
{
echo $this->method1(); // metode fra det første træk
echo $this->method2(); // metode fra det første træk
echo $this->method3(); // metode fra det andet træk
}
}
?>
Lav selv de samme træk,
som jeg har, og tilslut dem til klassen Test.
Lav en metode getSum i denne klasse,
som returnerer summen af resultaterne af metoderne fra de tilsluttede
træk.