Модификатори на пристап и трејтови во ООП во PHP

Треба да обрнете внимание на тоа што употребата на трејтови не е наследување. При наследување, приватните методи и својства не се наследуваат.

Кај трејтовите е обратно: во класата што ја користи трејтот ќе бидат достапни и јавните и приватните методи и својства на класата.

Да погледнеме на пример. Да претпоставиме дека го имаме следниот трејт со приватен метод:

php<?php
  trait TestTrait
  {
    private function method()
    {
      return '!!!';
    }
  }
?>

Да го поврземе нашиот трејт со класа:

php<?php
  class Test
  {
    use TestTrait;
  }
  
  new Test;
?>

Да го искористиме приватниот метод на трејтот:

php<?php
  class Test
  {
    use TestTrait; // го поврзуваме трејтот
    
    public function __construct()
    {
      echo $this->method(); // ќе испише '!!!'
    }
  }
  
  new Test;
?>