PHP OOP-da treýtlar bilen işleýän wagtynda usullaryň prioretiti

Eger klasda we treýtda bir atly usul bar bolsa, onda klasyň usuly treýtyň usulyny üstünlik alar:

php<?php
  trait TestTrait
  {
    // Method atly usul:
    public function method()
    {
      return 'treýt';
    }
  }
  
  class TestClass
  {
    use TestTrait;
    
    // Şeýle bir method atly usul:
    public function method()
    {
      return 'test';
    }
  }
  
  $test = new TestClass;
  echo $test->method(); // 'test' çykarar - klasyň öz usuly işledi
?>

Eger klas özünde şeýle usula eýe bolmasa, ýöne treýtyň usullarynyň we kakasynyň klassyň usullarynyň atlary arasynda konflikt bar bolsa, onda treýtyň usullary prioretide bolýar:

php<?php
  trait TestTrait
  {
    // Method atly usul:
    public function method()
    {
      return 'treýt';
    }
  }
  
  // Kakasyň klassy:
  class ParentClass
  {
    // Method atly usul:
    public function method()
    {
      return 'kaka';
    }
  }
  
  // Klas method usulyny kakasyndan miras alýar:
  class TestClass extends ParentClass
  {
    use TestTrait;
  }
  
  $test = new TestClass;
  echo $test->method(); // 'treýt' çykarar, sebäbi treýt prioretide
?>