Модификатори на пристап и трејтови во ООП во PHP
Треба да обрнете внимание на тоа што употребата на трејтови не е наследување. При наследување, приватните методи и својства не се наследуваат.
Кај трејтовите е обратно: во класата што ја користи трејтот ќе бидат достапни и јавните и приватните методи и својства на класата.
Да погледнеме на пример. Да претпоставиме дека го имаме следниот трејт со приватен метод:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Да го поврземе нашиот трејт со класа:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Да го искористиме приватниот метод на трејтот:
<?php
class Test
{
use TestTrait; // го поврзуваме трејтот
public function __construct()
{
echo $this->method(); // ќе испише '!!!'
}
}
new Test;
?>