НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗ppOpTrMP 82 of 107 menu

Приоритет методов при работе с трейтами в ООП в PHP

Если в классе и в трейте есть одноименный метод, то метод класса переопределит метод трейта:

<?php trait TestTrait { // Метод с именем method: public function method() { return 'trait'; } } class TestClass { use TestTrait; // Такой же метод с именем method: public function method() { return 'test'; } } $test = new TestClass; echo $test->method(); // выведет 'test' - сработал метод самого класса ?>

Если же сам класс не имеет такого метода, но имеется конфликт имен методов трейта и методов родительского класса, то методы трейта имеют приоритет:

<?php trait TestTrait { // Метод с именем method: public function method() { return 'trait'; } } // Родительский класс: class ParentClass { // Метод с именем method: public function method() { return 'parent'; } } // Класс наследует метод method от родительского: class TestClass extends ParentClass { use TestTrait; } $test = new TestClass; echo $test->method(); // выведет 'trait', тк трейт имеет приоритет ?>
Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить