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 - Características


PHP - O que são traços?

PHP suporta apenas herança simples: uma classe filha pode herdar apenas de um único pai.

Então, e se uma classe precisar herdar vários comportamentos? As características OOP resolvem esse problema.

Traits são usados ​​para declarar métodos que podem ser usados ​​em várias classes. As características podem ter métodos e métodos abstratos que podem ser usados ​​em várias classes, e os métodos podem ter qualquer modificador de acesso (público, privado ou protegido).

As características são declaradas com a trait palavra-chave:

Sintaxe

<?php
trait TraitName {
  // some code...
}
?>

Para usar uma característica em uma classe, use a use palavra-chave:

Sintaxe

<?php
class MyClass {
  use TraitName;
}
?>

Vejamos um exemplo:

Exemplo

<?php
trait message1 {
public function msg1() {
    echo "OOP is fun! ";
  }
}

class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>

Exemplo explicado

Aqui, declaramos uma característica: message1. Em seguida, criamos uma classe: Welcome. A classe usa a característica e todos os métodos na característica estarão disponíveis na classe.

Se outras classes precisarem usar a função msg1(), simplesmente use a característica message1 nessas classes. Isso reduz a duplicação de código, pois não há necessidade de redeclarar o mesmo método repetidamente.



PHP - Usando vários traços

Vejamos outro exemplo:

Exemplo

<?php
trait message1 {
  public function msg1() {
    echo "OOP is fun! ";
  }
}

trait message2 {
  public function msg2() {
    echo "OOP reduces code duplication!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>

Exemplo explicado

Aqui, declaramos duas características: message1 e message2. Em seguida, criamos duas classes: Welcome e Welcome2. A primeira classe (Welcome) usa a característica message1 e a segunda classe (Welcome2) usa as características message1 e message2 (várias características são separadas por vírgula).