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