⊗ppOpTrMP 82 of 107 menu

PHP-də OOP-də treytlərlə işləyərkən metodların prioriteti

Əgər sinifdə və treytdə eyniadlı metod varsa, onda sinfin metodu treytin metodunu əvəz edəcək:

<?php trait TestTrait { // Method adlı metod: public function method() { return 'trait'; } } class TestClass { use TestTrait; // Eyni Method adlı metod: public function method() { return 'test'; } } $test = new TestClass; echo $test->method(); // 'test' çıxardacaq - sinfin öz metodu işlədi ?>

Əgər sinfin özü belə bir metoda malik deyilsə, lakin treytin metodları və valideyn sinfinin metodlarının adları arasında konflikt varsa, onda treytin metodları prioritetə malikdir:

<?php trait TestTrait { // Method adlı metod: public function method() { return 'trait'; } } // Valideyn sinfi: class ParentClass { // Method adlı metod: public function method() { return 'parent'; } } // Sinif Method metodunu valideyndən miras alır: class TestClass extends ParentClass { use TestTrait; } $test = new TestClass; echo $test->method(); // 'trait' çıxardacaq, çünki treyt prioritetə malikdir ?>
azbydeenesfrkakkptruuz