Modifikatori pristupa i trejtovi u OOP-u u PHP-u
Treba obratiti pažnju na to da korišćenje trejtova - nije nasleđivanje. Prilikom nasleđivanja privatni metodi i svojstva se ne nasleđuju.
Kod trejtova je sve obrnuto: u klasi koja koristi trejt biće dostupni i javni, i privatni metodi i svojstva klase.
Pogledajmo na primeru. Neka postoji sledeći trejt sa privatnim metodom:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Povežimo naš trejt sa klasom:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Koristimo privatni metod trejta:
<?php
class Test
{
use TestTrait; // povezujemo trejt
public function __construct()
{
echo $this->method(); // ispisaće '!!!'
}
}
new Test;
?>