Interface em PHP | Interfaces PHP OOPs
Publicados: 2021-03-03Índice
Introdução
PHP é uma linguagem orientada a objetos e uma interface é um dos principais recursos de uma linguagem de programação orientada a objetos. A interface permite que os codificadores declarem as funções que contêm as diferentes definições na classe que implementa essa interface. Continue lendo para entender a interface em PHP . Além disso, veja os exemplos de interface em PHP compartilhados no artigo para entender melhor.
Interface em PHP
Uma interface é um recurso na programação orientada a objetos que permite criar funções sem implementação. A implementação precisa ser incluída na classe. Isso ajuda a evitar a complexidade da definição do método, pois cada classe que herda a interface pode ter uma implementação diferente conforme a necessidade. O uso da interface em PHP é semelhante ao da classe, com a única diferença de que a implementação não está presente nas funções da interface, e a interface não possui variáveis.
Características de uma interface em PHP
- A interface não contém o código.
- A interface tem a declaração do método com ou sem argumentos mas não a definição.
- Uma classe que está implementando a interface deve conter a definição de todos os métodos declarados na interface.
- Uma classe pode ter a implementação de várias interfaces.
- Uma interface não pode ter métodos não abstratos.
Sintaxe de uma interface
A interface precisa ser declarada antes do uso. A sintaxe de uma interface é semelhante à de uma classe, com a única diferença de que a palavra-chave interface é usada no lugar da palavra-chave class ao declarar a interface. Abaixo está a sintaxe para declarar uma interface em PHP :
<?php
//Declaração da interface em PHP
Interface <Nome da Interface>
{
//Código
}
?>
Os métodos declarados dentro da interface podem ser acessados herdando a interface por classe. A classe herda a interface em PHP usando a palavra-chave implements enquanto declara a classe.
Abaixo está a sintaxe para implementar uma interface em PHP :
<?php
//Declaração da classe
A classe <Nome da classe> implementa <Nome da interface>
{
//Código
}
?>
Exemplos de interface em PHP
Para entender o uso da interface, vamos dar uma olhada no exemplo abaixo:
<?php
//Declarando a interface
Exemplo de Interface_Shape
{
Função pública ShapeArea();
}
//Classe herdando a interface
A classe Shape1 implementa Example_Shape
{
Função pública ShapeArea()
{
Echo 'Área do círculo';
}
}
//Classe herdando a interface
A classe Shape2 implementa Example_Shape
{
Função pública ShapeArea()
{
Eco 'Área da praça';
}
}
// Classe sem usar a interface
Forma de Classe3
{
Função pública AreaCal()
{
Echo 'Sem interface';
}
}
$Obj1 = nova Forma1; // Objeto para classe1
$Obj2 = nova Forma2; // Objeto para classe2
$obj3 = nova Forma3; // Objeto para classe 3, não usando interface
Echo $obj1->ShapeArea();
Eco '<br>';
Echo $obj2->ShapeArea();
Eco '<br>';
Echo $obj3->AreaCal();
?>
Saída
Área do círculo
Área do quadrado
Sem interface
Explicação da saída
A classe Shape1 tem a definição de uma função declarada dentro da interface. Shape1 implementa a interface, portanto, tem acesso à função dentro dela e imprime 'Área do círculo'. Semelhante é a explicação para a classe Shape2 e a saída 'Área do quadrado'. A classe Shape3 não está implementando a interface e funciona como uma classe usual em PHP.
Implementação de múltiplas interfaces
Uma classe também pode implementar mais de uma interface. Nesses casos, a classe precisa ter a definição de todos os métodos declarados em todas as interfaces que a classe está implementando. Abaixo está a ilustração da implementação de mais de uma interface em PHP .
<?php
// Declaração de Interface
Exemplo de interface1
{
Função pública method1();
}
// Declaração de outra interface
Exemplo de interface2
{
Função pública method2();
}
//Classe implementando as duas interfaces declaradas acima
classe class1 implementa exemplo1, exemplo2
{
// Definição do método da interface1
Método de função pública1
{
Echo 'Dentro do método1 da interface1';
}
//Definição do método de interface2
Método de função pública2
{
Echo 'Dentro do método2 da interface2;
}
}
Obj1 = nova classe1;
Obj2 = nova classe2;
Obj1->método1;
Obj2->método2;
?>
Saída
Dentro do método1 da interface1
Dentro do método2 da interface2
Alguns pontos a serem observados sobre a implementação de múltiplas interfaces
- Todos os métodos declarados na interface devem ser públicos.
- A função não pode ter a palavra-chave abstract.
- Se o programador esquecer de definir qualquer função de interface, o código gerará um erro.
- Interfaces não podem conter variáveis.
Checkout: Conceitos de OOPs em PHP
Diferença entre uma interface e uma classe abstrata
Abaixo estão algumas das diferenças entre uma interface e uma classe abstrata:
- Uma interface contém apenas a declaração, mas uma classe abstrata contém a declaração do método e sua definição.
- Os métodos na interface só podem ser públicos, enquanto os métodos na classe abstrata podem ser declarados como públicos, privados ou protegidos.
- Uma classe pode implementar mais de uma interface, enquanto uma classe pode estender apenas um método abstrato.
Conclusão
Uma interface em PHP é um recurso que permite aos usuários declarar métodos públicos sem definição. Este artigo explicou todas as informações sobre a interface com sua sintaxe e exemplos. Esperamos que as informações compartilhadas neste artigo sejam úteis para você entender o conceito. Você pode aprender tópicos semelhantes baseados em PHP em blogs upGrad. Para uma compreensão profunda, você pode se inscrever em um curso de certificação online em PHP no upGrad. O upGrad oferece muitos cursos certificados que podem ajudá-lo em sua carreira e aprendizado.
Se você estiver interessado em aprender mais sobre desenvolvimento de software full-stack, confira o PG Diploma in Full-stack Software Development do upGrad & IIIT-B, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.