⊗ppOpTrMP 82 of 107 menu

Priorita metod při práci s trait v OOP v PHP

Pokud třída a trait mají metodu se stejným názvem, metoda třídy přepíše metodu traitu:

<?php trait TestTrait { // Metoda s názvem method: public function method() { return 'trait'; } } class TestClass { use TestTrait; // Stejná metoda s názvem method: public function method() { return 'test'; } } $test = new TestClass; echo $test->method(); // vypíše 'test' - provedla se metoda samotné třídy ?>

Pokud samotná třída takovou metodu nemá, ale dochází ke konfliktu názvů metod traitu a metod rodičovské třídy, pak metody traitu mají prioritu:

<?php trait TestTrait { // Metoda s názvem method: public function method() { return 'trait'; } } // Rodičovská třída: class ParentClass { // Metoda s názvem method: public function method() { return 'parent'; } } // Třída dědí metodu method od rodiče: class TestClass extends ParentClass { use TestTrait; } $test = new TestClass; echo $test->method(); // vypíše 'trait', protože trait má prioritu ?>
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout