⊗ppOpTrMP 82 of 107 menu

Prioritatea metodelor la lucrul cu trăsături în OOP în PHP

Dacă într-o clasă și într-o trăsătură există o metodă cu același nume, atunci metoda clasei va suprascrie metoda trăsăturii:

<?php trait TestTrait { // Metodă cu numele method: public function method() { return 'trait'; } } class TestClass { use TestTrait; // Aceeași metodă cu numele method: public function method() { return 'test'; } } $test = new TestClass; echo $test->method(); // va afișa 'test' - a funcționat metoda clasei în sine ?>

Dacă însă clasa în sine nu are o astfel de metodă, dar există un conflict de nume între metodele trăsăturii și metodele clasei părinte, atunci metodele trăsăturii au prioritate:

<?php trait TestTrait { // Metodă cu numele method: public function method() { return 'trait'; } } // Clasa părinte: class ParentClass { // Metodă cu numele method: public function method() { return 'parent'; } } // Clasa moștenește metoda method de la părinte: class TestClass extends ParentClass { use TestTrait; } $test = new TestClass; echo $test->method(); // va afișa 'trait', deoarece trăsătura are prioritate ?>
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge