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;
?>