ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗ppOpTrAMt 83 of 107 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Абстрактные методы трейтов в ООП в 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