Juurdepääsu modifikaatorid ja treidid OOP-s PHP-s
Peaksite pöörama tähelepanu sellele, et treitide kasutamine ei ole pärimine. Pärimise korral privaatsed meetodid ja omadused ei pärine.
Treitides on kõik vastupidi: treiti kasutavas klassis on kättesaadavad nii avalikud kui ka privaatsed meetodid ja klassi omadused.
Vaatame näidet. Oletame, et meil on järgmine treit privaatse meetodiga:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Ühendame oma treidi klassiga:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Kasutame treidi privaatset meetodit:
<?php
class Test
{
use TestTrait; // ühendame treidi
public function __construct()
{
echo $this->method(); // väljastab '!!!'
}
}
new Test;
?>