• Conceitos O.O

Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Introdução sobre classes
  2. Criar uma classe em PHP
  3. Instanciar um objeto
  4. Básico sobre atributos
  5. Básico sobre métodos
  6. Identificando tipos: instanceof
  7. Usando namespace
  8. modificadores de acesso
  9. classe parcial
  10. classe anônima
  11. unpacking

Para alguns exemplos apresentados abaixo, será necessário utilizar uma das IDEs vistas em PHP: Introdução ou um compilador online que suporte a criação de arquivos em seu ambiente como Onlinegdb.

Classes representam o esqueleto de objetos, em PHP são declaradas utilizando um modificador de acesso, a palavra reservada class e um nome de classe. Seu corpo é delimitado por { e }. Abaixo, a sintaxe qu resume o que foi explicado:

Sintaxe
modificador_acesso class nome_classe
{
 //corpo da classe
}
Onde
class: palavra reservada para informar que a definição do tipo de dados é uma classe.
nome_classe: nome da classe que desejamos criar
modificador_acesso: public

O modificador de acesso public é o modificador padrão das classes que não têm seus modificadores informados.

Exemplo 1
//MinhaClasse.php
<?php
class MinhaClasse //public
{
    //métodos
    //atributos
}
?>
Saída
-

Em PHP, um arquivo .php podem conter N classes. Quando declaramos uma classe por arquivo, tanto o nome da classe quanto o arquivo não precisam ter o mesmo nome.

Exemplo 2
//MinhaClasse.php
<?php
class MinhaClasse1 {
    //métodos, atributos e etc.
}

class MinhaClasse2 {
    //métodos, atributos e etc.
}
?>
Saída
-

Para utilizarmos as classes declaradas em seus respectivos arquivos .php utilizamos o include no topo do arquivo script onde serão utilizadas.

Exemplo 3
//MinhaClasse.php
<?php
    include("MinhaClasse.php");

    //omitido
}
?>
Saída
-

A criação de objetos ou instanciação de objetos na linguagem PHP é feita utilizando a palavra reservada newque irá criar que um novo objeto a partir de uma determinada classe.

Sintaxe
$nome_objeto = new nome_classe();

Quando instanciamos um objeto utilizando a sintaxe acima, estamos invocando o método construtor padrão. Esse assunto será visto em POO: Métodos.

Após o uso de uma objeto, utilizamos como atribuição o valor null para que os recursos de memória alocados sejam liberados.

Exemplo 4
//MinhaClasse.php
<?php
    class MinhaClasse {
        //métodos, atributos e etc.
    }
?>

//main.php
<?php
    include("MinhaClasse.php");

    $mc1 = new MinhaClasse1();
    //uso de mc1
    $mc1 = null;
?>
Saída
-

As classes que possuem codificação são chamadas de classes concretas. Além de classe concreta, a linguagem PHP permite a criação de classes abstratas e anônimas que serão vistas em POO: Classe Abstrata e Interface e PHP POO: Classe Anônima.

Para declaração de atributos ou campos que irão guardar informações sobre nossos objeto, utilizamos os tipos de dados disponíveis pela linguagem PHP em conjunto com modificadores de acesso.

Tanto os modificadores de acesso quanto os atribuitos serão vistos em POO: Atributos e Encapsulamento e POO: Herança.

Sintaxe
modificador_acesso $nome_atributo;
Exemplo 5
//MinhaClasse.php
public class MinhaClasse{
    public $codigo;
}
Saída
-

Os métodos declarados em uma classe são funções que pertencem apenas às classes e são invocados por um instância de objeto. O assunto método será visto em POO: Métodos e Sobrecarga.

Sintaxe
modificador_acesso nome_metodo(<lista_parametros>) : tipo_retorno
{
    //corpo
}
Exemplo 6
//main.php
<?php
class MinhaClasse {
    
    function set_name($name)
    {
        //omitido
    }
}
?>
Saída
-

A linguagem PHP possui o operador chamado instanceof que nos permite checar se dois objeto são de um mesmo tipo. Esse operador retorna true(1) ou false(0) como vários operadores de comparação/relacionais. Seu uso é feito de acordo com a sintaxe abaixo:

Sintaxe
$objeto1 instanceof $objeto2
Exemplo 7
//MinhaClasse.php
<?php
class MinhaClasse1 {
    //métodos, atributos e etc.
}

class MinhaClasse2 {
    //métodos, atributos e etc.
}
?>

//main.php
<?php
include("MinhaClasse.php");
$mc1 = new MinhaClasse1();
$mc2 = new MinhaClasse2();
$mc3 = new MinhaClasse1();

var_dump($mc1 instanceof $mc2)
var_dump($mc1 instanceof $mc3)
?>
Saída
bool(false)
bool(true)
  1. 26/08/2025 - revisão 4 - Ajustes: pontuais, objetivos, targets de links e sintaxes
  2. 20/09/2024 - revisão 3 - Ajuste gramaticais; correção em sintaxe de 'Métodos' e 'Atributos'; outros ajustes
  3. 03/09/2024 - revisão 2 - correção em link de objetivo: instanceof
  4. 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  5. 20/09/2023 - versão inicial