С помощью интерфейсов можно описать методы, которые должны быть реализованы в классе без необходимости описания их функционала.

Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова interface. Тела методов интерфейсов должны быть пустыми.

Методы, внутри интерфейса, должны бать определены как публичные.

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

<?php
// Объявим интерфейс 'CarTemplate'
interface CarTemplate
{
    public function getId(); // получить id автомобиля
    public function getName(); // получить название
    public function add(); // добавить новый автомобиль
}
?>

Для реализации интерфейса используется оператор implements. Класс должен реализовать все методы, описанные в интерфейсе; иначе произойдет фатальная ошибка. Если нужно, то классы могут реализовывать более одного интерфейса, реализуемые интерфейсы должны разделяться запятой.

Пример:

<?php
// Объявим интерфейс 'CarTemplate'
class Audi implements CarTemplate {
     function getId() {
          return "1-ATHD98";
    }

    function getName() {
         return "Audi";
    }

    function add() {
         // 
    }
}

 
class Bmw implements CarTemplate {
    function getId() {
          return "2-HHFY14";
    }

    function getName() {
         return "BMW";
    }

    function add() {
         // 
    }

}
?>

Думаю, суть понятна.