Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppOpTrAMt 83 of 107 menu

Абстрактыя метады трэйтаў у ААП у PHP

У трэйтах можна некаторыя метады аб'яўляць абстрактнымі. У гэтым выпадку клас, які выкарыстоўвае гэты трэйт, абавязаны будзе рэалізаваць такі метад. Пры гэтым абстрактыя метады трэйта не могуць быць прыватнымі.

Давайце паглядзім на прыкладзе. Хай у нас ёсць вось такі трэйт:

<?php trait TestTrait { public function method1() { return 1; } abstract public function method2(); } ?>

Хай наш трэйт выкарыстоўваецца класам Test. Наяўнасць у трэйце абстрактнага метаду абавязае праграміста рэалізаваць яго ў класе, інакш будзе памылка PHP.

Давайце зробім клас Test разам з метадам method2:

<?php class Test { use TestTrait; // выкарыстоўваем трэйт // Рэалізуем абстрактны метад: public function method2() { return 2; } } new Test; ?>

Скапіюйце код майго трэйта TestTrait і код майго класа Test. Выдаліце з класа метад method2. Пераканайцеся ў тым, што адсутнасць яго рэалізацыі прывядзе да памылкі PHP.

byenru