Tutorial PHP

PHP INÍCIO Introdução ao PHP Instalação do PHP Sintaxe PHP Comentários PHP Variáveis ​​PHP PHP Eco/Impressão Tipos de dados PHP Strings PHP Números PHP Matemática PHP Constantes PHP Operadores PHP PHP If...Else...Elseif Chave PHP Loops PHP Funções PHP Matrizes PHP PHP Superglobais PHP RegEx

Formulários PHP

Manipulação de formulários PHP Validação de formulário PHP Formulário PHP obrigatório URL/e-mail do formulário PHP Formulário PHP completo

PHP Avançado

Data e hora do PHP Incluir PHP Manipulação de arquivos PHP Arquivo PHP Abrir/Ler Arquivo PHP Criar/Gravar Upload de arquivo PHP Cookies PHP Sessões PHP Filtros PHP Filtros PHP Avançados Funções de retorno de chamada do PHP PHP JSON Exceções do PHP

PHP OOP

PHP O que é POO Classes/objetos PHP Construtor PHP Destruidor PHP Modificadores de acesso PHP Herança PHP Constantes PHP Classes abstratas PHP Interfaces PHP Características PHP Métodos estáticos PHP Propriedades estáticas do PHP Namespaces PHP Iteráveis ​​PHP

Banco de dados MySQL

Banco de dados MySQL MySQL Connect MySQL Criar banco de dados MySQL Criar Tabela Dados de inserção do MySQL MySQL Obter Último ID MySQL Inserir Múltiplo Preparado para MySQL Dados de seleção do MySQL MySQL Onde MySQL Ordenar por Dados de exclusão do MySQL Dados de atualização do MySQL Dados de limite do MySQL

PHP XML

Analisadores XML PHP Analisador PHP SimpleXML PHP SimpleXML - Obter PHP XML Expatriado PHP XML DOM

PHP - AJAX

Introdução AJAX PHP AJAX Banco de dados AJAX XML AJAX Pesquisa em tempo real AJAX Enquete AJAX

Exemplos PHP

Exemplos PHP Compilador PHP Teste PHP Exercícios PHP Certificado PHP

Referência PHP

Visão geral do PHP Matriz PHP Calendário PHP Data do PHP Diretório PHP Erro PHP Exceção PHP Sistema de arquivos PHP Filtro PHP PHP FTP PHP JSON Palavras-chave PHP PHP Libxml Correio PHP Matemática PHP PHP Diversos PHP MySQLi Rede PHP Controle de saída PHP PHP RegEx PHP SimpleXML Fluxo PHP String PHP Manipulação de variáveis ​​PHP Analisador XML PHP PHP Zip Fusos horários PHP

PHP OOP - Interfaces


PHP - O que são interfaces?

Interfaces permitem que você especifique quais métodos uma classe deve implementar.

As interfaces facilitam o uso de uma variedade de classes diferentes da mesma maneira. Quando uma ou mais classes usam a mesma interface, ela é chamada de "polimorfismo".

As interfaces são declaradas com a interfacepalavra-chave:

Sintaxe

<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

PHP - Interfaces vs. Classes Abstratas

Interface são semelhantes às classes abstratas. A diferença entre interfaces e classes abstratas são:

  • Interfaces não podem ter propriedades, enquanto classes abstratas podem
  • Todos os métodos de interface devem ser públicos, enquanto os métodos de classe abstrata são públicos ou protegidos
  • Todos os métodos em uma interface são abstratos, portanto, não podem ser implementados em código e a palavra-chave abstract não é necessária
  • As classes podem implementar uma interface enquanto herdam de outra classe ao mesmo tempo

PHP - Usando Interfaces

Para implementar uma interface, uma classe deve usar a palavra- implementschave.

Uma classe que implementa uma interface deve implementar todos os métodos da interface.

Exemplo

<?php
interface Animal {
  public function makeSound();
}

class Cat implements Animal {
  public function makeSound() {
    echo "Meow";
  }
}

$animal = new Cat();
$animal->makeSound();
?>

A partir do exemplo acima, digamos que gostaríamos de escrever um software que gerencie um grupo de animais. Existem ações que todos os animais podem fazer, mas cada animal faz isso à sua maneira.

Usando interfaces, podemos escrever algum código que funcione para todos os animais, mesmo que cada animal se comporte de maneira diferente:

Exemplo

<?php
// Interface definition
interface Animal {
  public function makeSound();
}

// Class definitions
class Cat implements Animal {
  public function makeSound() {
    echo " Meow ";
  }
}

class Dog implements Animal {
  public function makeSound() {
    echo " Bark ";
  }
}

class Mouse implements Animal {
  public function makeSound() {
    echo " Squeak ";
  }
}

// Create a list of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new Mouse();
$animals = array($cat, $dog, $mouse);

// Tell the animals to make a sound
foreach($animals as $animal) {
  $animal->makeSound();
}
?>

Exemplo explicado

Cat, Dog e Mouse são todas classes que implementam a interface Animal, o que significa que todas elas são capazes de fazer um som usando o makeSound()método. Por causa disso, podemos percorrer todos os animais e dizer-lhes para fazer um som, mesmo que não saibamos que tipo de animal é cada um.

Como a interface não informa às classes como implementar o método, cada animal pode emitir um som à sua maneira.