Prieigos modifikatoriai ir treitai OOP PHP
Derėtų atkreipti jūsų dėmesį į tai, kad treitų naudojimas nėra paveldėjimas. Paveldint privatūs metodai ir savybės nepaveldimi.
Treituose viskas atvirkščiai: klasėje, kurioje naudojamas treitas, bus prieinami tiek vieši, tiek ir privatūs klasės metodai ir savybės.
Pažiūrėkime pavyzdžiu. Tarkime, kad turime šį treitą su privačiu metodu:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Prijunkime mūsų treitą prie klasės:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Naudokime treito privatų metodą:
<?php
class Test
{
use TestTrait; // prijungiame treitą
public function __construct()
{
echo $this->method(); // išves '!!!'
}
}
new Test;
?>