Flere træk i OOP i PHP
I en klasse kan du bruge ikke et, men flere
træk. Det er her deres fordel kommer til udtryk
frem for arv. De træk, der skal bruges
i klassen, kan angives adskilt af komma
eft nøgleordet use.
Lad os se på et eksempel. Antag, at vi har to træk. Den første:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Den anden:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Lad os bruge vores træk i klassen:
<?php
class User
{
use Helper1, Helper2; // tilslutter træk
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Lav 3 træk med navnene Trait1,
Trait2 og Trait3. Lad i den første
træk være en metode method1, der returnerer
1, i den anden træk - en metode method2,
der returnerer 2, og i den tredje træk
- en metode method3, der returnerer 3.
Lad alle disse metoder være private.
Lav en klasse Test, der bruger
alle tre af vores oprettede træk. Lav i
denne klasse en offentlig metode getSum,
der returnerer summen af resultaterne af metoderne fra de tilsluttede
træk.