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