АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗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', бо трэйт мае прыярытэт ?>
byenru