Интерфейсы объектов позволяют программисту создавать код, который
указывает, какие методы и свойства должен включать класс, без
необходимости описывания их функционала.
Интерфейсы объявляются так же, как и обычные классы, но с использованием
ключевого слова "interface"; тела методов интерфейсов должны быть пустыми.
Для включения интерфейса в класс программист должен использовать
ключевое слово "implements" и описать функционал методов,
перечисленных во включаемом интерфейсе. Если это требуется,
классы могут включать более одного интерфейса путём их перечисления
через пробел.
Если класс включает какой-либо интерфейс и не описывает функционал
всех методов этого интерфейса, выполнение кода с использованием
такого класса завершится фатальной ошибкой, сообщающей, какие
именно методы не были описаны.
Пример 19-18. Пример интерфейса
<?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; } } ?>
|
|