⊗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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне