Нужна помощь донатом
для написания учебников Kotlin, Java, C++, C#, Go, Rust, Dart
подробности по ссылке
⊗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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне