@Evgenij_nechujveter

Почему не работает код?

Помогите понять где ошибаюсь:

interface iTemplate {
    const MYCONST = 50;
    public function setVariable($var);
    public function getHtml($template);
}

class BadTemplate implements iTemplate{
    const MYCONST = 100;
    public function setVariable($var, $name)
    {
        //КОД
    }
}
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Не работает потому что:
1. Нельзя переопределять константы объявленные в интерфейсе
2. Нельзя переопределять сигнатуру методов объявленных в интерфейсе, т.е. если Вы в интерфейсе объявили метод setVariable($var) то и в классах реализовывающих интерфейс должен быть точно такой же метод с точно такими же параметрами
3. Класс должен реализовывать все МЕТОДЫ объявленные в интерфейсе, у Вас же метод getHtml($template) в классе BadTemplate не определен

Вы бы почитали что такое интерфейсы и как с ними работать
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Firik67
Middle PHP Developer
1. Поставить IDE, скопировать туда код, посмотреть на ошибку, которая она покажет
2. Еще раз прочитать про интерфейсы
3. Понять, что нужно реализовывать ВСЕ методы в реализующем классе, объявленные в интерфейсе
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽