Задать вопрос
@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 Оценить Комментировать
Решения вопроса 1
qonand
@qonand
Software Engineer
Не работает потому что:
1. Нельзя переопределять константы объявленные в интерфейсе
2. Нельзя переопределять сигнатуру методов объявленных в интерфейсе, т.е. если Вы в интерфейсе объявили метод setVariable($var) то и в классах реализовывающих интерфейс должен быть точно такой же метод с точно такими же параметрами
3. Класс должен реализовывать все МЕТОДЫ объявленные в интерфейсе, у Вас же метод getHtml($template) в классе BadTemplate не определен

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

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

Похожие вопросы