Flere trekk i OOP i PHP
I en klasse kan du bruke ikke ett, men flere
trekk. Det er her fordelen deres kommer til syne
fremfor arv. Nødvendige trekk for bruk
i klassen kan angis etter komma
etter nøkkelordet use.
La oss se på et eksempel. La oss si at vi har to trekk. Det første:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Det andre:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
La oss bruke våre trekk i en klasse:
<?php
class User
{
use Helper1, Helper2; // kobler til trekkene
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Lag 3 trekk med navnene Trait1,
Trait2 og Trait3. La det i det første
trekket være en metode method1 som returnerer
1, i det andre trekket - en metode method2,
som returnerer 2, og i det tredje trekket
- en metode method3 som returnerer 3.
La alle disse metodene være private.
Lag en klasse Test som bruker
alle tre av trekkene vi har opprettet. Lag i
denne klassen en offentlig metode getSum,
som returnerer summen av resultatene fra metodene til de tilkoblede
trekkene.