Modifikatori pristupa i trejtovi u OOP-u u PHP-u

Treba obratiti pažnju na to da korišćenje trejtova - nije nasleđivanje. Prilikom nasleđivanja privatni metodi i svojstva se ne nasleđuju.

Kod trejtova je sve obrnuto: u klasi koja koristi trejt biće dostupni i javni, i privatni metodi i svojstva klase.

Pogledajmo na primeru. Neka postoji sledeći trejt sa privatnim metodom:

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

Povežimo naš trejt sa klasom:

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

Koristimo privatni metod trejta:

php<?php
  class Test
  {
    use TestTrait; // povezujemo trejt
    
    public function __construct()
    {
      echo $this->method(); // ispisaće '!!!'
    }
  }
  
  new Test;
?>