Modificatori de acces și trăsături în OOP în PHP
Trebuie să vă atragem atenția asupra faptului că utilizarea trăsăturilor - nu este moștenire. La moștenire, metodele și proprietățile private nu sunt moștenite.
În trăsături este invers: în clasa care utilizează trăsătura vor fi accesibile atât metodele și proprietățile publice, cât și cele private ale clasei.
Să vedem un exemplu. Să presupunem că avem următoarea trăsătură cu o metodă privată:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Să conectăm trăsătura noastră la clasă:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Să utilizăm metoda privată a trăsăturii:
<?php
class Test
{
use TestTrait; // conectăm trăsătura
public function __construct()
{
echo $this->method(); // va afișa '!!!'
}
}
new Test;
?>