Интерфейс

Интерфейс указывает классу, какой функционал он должен реализовать.

Интерфейс не может содержать код. Он может определять только имена методов. Наследуемые классы должны иметь теже методы, которые были объявлены в интерфейсе, иначе произойдёт ошибка.

Пример интерфейса:

interface myTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}
 
class Template implements myTemplate
{
    public function setVariable($name, $var) {
        // код
    }
 
    public function getHtml($template) {
        // код
    }
}

Интерфейс указывает, какие методы и свойства должен включать класс. Т.е. если бы класс Template не содержал бы функцию getHtml, то отобразилась бы ошибка.