PHP OOP-da giriş üýtgetmeler we treýtlar

Siziň ünsüňizi treýtları ulanmagyň miras alyş däldigine gönükdirmeli. Miras alyşda hususy usullar we aýratynlyklar miras alynmaýar.

Treýtlarda bolsa, ähli tersine: treýdy ulanýan klasda, klasyň ýönekeý usullary we aýratynlyklary ýaly, şeýle hem hususy usullar we aýratynlyklar elýeterli bolar.

Geliň mysal bilen sereliň. Bizde hususy usuly bolan aşakdaky treýt bar bolsun:

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

Treýdy öz klasymyza birikdireliň:

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

Treýdyň hususy usulyny ulanalym:

php<?php
  class Test
  {
    use TestTrait; // treýdy birikdirýäris
    
    public function __construct()
    {
      echo $this->method(); // '!!!' çykarar
    }
  }
  
  new Test;
?>