Интерфейсы объектов

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

Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова "interface"; тела методов интерфейсов должны быть пустыми. Для включения интерфейса в класс программист должен использовать ключевое слово "implements" и описать функционал методов, перечисленных во включаемом интерфейсе. Если это требуется, классы могут включать более одного интерфейса путём их перечисления через пробел.

Если класс включает какой-либо интерфейс и не описывает функционал всех методов этого интерфейса, выполнение кода с использованием такого класса завершится фатальной ошибкой, сообщающей, какие именно методы не были описаны.

Пример 19-17. Пример интерфейса

<?php
interface ITemplate
{
  public function 
setVariable($name$var);
  public function 
getHtml($template);
}

class 
Template implements ITemplate
{
  private 
$vars = array();
  
  public function 
setVariable($name$var)
  {
    
$this->vars[$name] = $var;
  }
  
  public function 
getHtml($template)
  {
    foreach(
$this->vars as $name => $value) {
      
$template str_replace('{'.$name.'}'$value$template);
    }
    
    return 
$template;
  }
}
?>

Free Web Hosting