Modifikátory přístupu a traity v OOP v PHP
Je třeba upozornit na to, že používání traitů není dědičnost. Při dědičnosti se privátní metody a vlastnosti nedědí.
U traitů je to naopak: ve třídě, která trait používá, budou dostupné jak veřejné, tak i privátní metody a vlastnosti traitů.
Podívejme se na příklad. Předpokládejme, že máme následující trait s privátní metodou:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Připojme náš trait ke třídě:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Použijeme privátní metodu traitu:
<?php
class Test
{
use TestTrait; // připojujeme trait
public function __construct()
{
echo $this->method(); // vypíše '!!!'
}
}
new Test;
?>