A palavra-chave interface

A palavra-chave interface é usada para criar interfaces - construções especiais que definem quais métodos uma classe deve implementar. Interfaces contêm apenas declarações de métodos sem suas implementações. Uma classe que implementa uma interface deve conter todos os métodos declarados na interface.

Sintaxe

phpinterface InterfaceName {
  public function method1();
  public function method2($param);
  // ...
}

Exemplo

Vamos criar uma interface simples e uma classe que a implementa:

php<?php
  interface Logger {
    public function log($message);
  }

  class FileLogger implements Logger {
    public function log($message) {
      echo "Registrando no arquivo: " . $message;
    }
  }

  $logger = new FileLogger();
  $logger->log("Mensagem de teste");
?>

Resultado da execução do código:

php'Registrando no arquivo: Mensagem de teste'

Exemplo

Uma interface pode conter vários métodos, e a classe deve implementar todos eles:

php<?php
  interface Shape {
    public function calculateArea();
    public function calculatePerimeter();
  }

  class Circle implements Shape {
    private $radius;
    
    public function __construct($radius) {
      $this->radius = $radius;
    }
    
    public function calculateArea() {
      return 3.14 * $this->radius * $this->radius;
    }
    
    public function calculatePerimeter() {
      return 2 * 3.14 * $this->radius;
    }
  }

  $circle = new Circle(5);
  echo "Área: " . $circle->calculateArea();
?>

Resultado da execução do código:

php'Área: 78.5'

Veja também

  • o comando class,
    para declarar classes
  • o comando trait,
    para declarar traits