Flera traits i OOP i PHP
I en klass kan man använda inte bara ett, utan flera
traits. Det är här deras fördel framträder
jämfört med arv. De traits som behöver användas
i klassen kan anges efter kommatecken
efter nyckelordet use.
Låt oss titta på ett exempel. Låt oss säga att vi har två traits. Det första:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Det andra:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Låt oss använda våra traits i en klass:
<?php
class User
{
use Helper1, Helper2; // ansluter traits
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Skapa 3 traits med namnen Trait1,
Trait2 och Trait3. Låt det i det första
traitet finnas en metod method1 som returnerar
1, i det andra traitet - en metod method2,
som returnerar 2, och i det tredje traitet
- en metod method3 som returnerar 3.
Låt alla dessa metoder vara privata.
Skapa en klass Test som använder
alla tre av de traits vi skapat. Skapa i
denna klass en publik metod getSum,
som returnerar summan av resultaten från metoderna i de anslutna
traitsen.