• Conceitos de P.O.O

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

  1. Declarar atributo
  2. Acessar/alterar atributo
  3. Uso do this
  4. Atributo estático
  5. Constante de classe
  6. Uso do readonly
  7. Uso do strict
  8. Uso do self

Para definição de atributos que irão guardar informações em nossas objetos, utilizamos os tipos de dados disponíveis pela linguagem PHP em conjunto com modificadores de acesso.

Sintaxe
modificador_acesso $nome_atribuito = valor; //iniciado
modificador_acesso $nome_atribuito; //não iniciado
Onde
modificador_acesso: modificadores que permitem ou não a visibilidade do atribuito

O encapsulamento de atributos e métodos de nossas classes é feito utilizando os modificadores mostrados na tabela abaixo com seus repectivos acessos:

Tab. 1: Modificadores de acesso
Acesso public private protected
Mesma Classe Sim Sim Sim
Outra Classe Sim Não Não
Classe Herdada Sim Não Sim

Com o uso dos modificadores de acesso acima citados, aplicamos o conceito de encapsulamento dos atributos de nossos objetos.

O modificador protected será melhor compreendido quando estivermos estudando o tópico sobre POO: Herança. Até lá, não é necessário se preocupar sobre o modificador.

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

Exemplo 1
//MinhaClasse.php
<?php
 class MinhaClasse
 {
   public $atributo1;
   private $atributo2;
   protected $atributo3;
 }
 $objeto = new MinhaClasse();
?>
Saída
-

O acesso aos atributos é feitas utilizando o operador de acesso a membros (->). A atribuição é feita utilizando o operador de atribuição (=) já visto em vários exemplos:

Sintaxe
$nome_objeto->nome_atributo;
$nome_objeto->nome_atributo = valor;
Onde
-
Exemplo 2
//MinhaClasse.php
<?php
class MinhaClasse {
   public $atributo1;
}
?>

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

    $objeto = new MinhaClasse();
    $objeto->atributo = 999;
    echo $objeto-> atributo;
?>
Saída
999

O this é uma palavra reservada da linguagem PHP que informa que estamos fazendo referência à própria classe. Dessa forma é possível distinguir de qual classe o recursos, por exemplo, atributos ou variáveis locais.

Sintaxe
$this->nome_atributo;
Exemplo 3
//MinhaClasse.php
<?php
class MinhaClasse 
{
   public $atributo;
   
   function metodo()
   {
       $atributo = 888; //variável com mesmo nome de atributo de classe
       this->atributo = 999;
       echo $this->atributo,"\n"; //imprimindo atributo da classe
       echo $atributo; //imprimindo variável local
   }
}

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

    $objeto = new MinhaClasse();
    $objeto->metodo();
?>
Saída
999
888

No exemplo acima, utilizamos um método para exemplificar o uso o this, o assunto método será visto em POO: Métodos e Sobrecarga.

Atributos com modificador de restrição static são atributos que irão existir independente de um objeto ser instanciado ou não. Independente de quantos objetos instanciados, todos terão o mesmo atributo estático compartilhado.

Sintaxe
modificador_acesso static $nome_atribuito;

Para acessar um atributo estático utilizamos o operador (::) como na sintaxe abaixo:

Sintaxe
$nome_objeto::nome_atributo;
$nome_objeto::atributo = valor;
Onde
-
Exemplo 4
//MinhaClasse.php
<?php
class MinhaClasse
{
    public static $atributo = -1;
    //omitido
}
?>

//Main.java
<?php
    include("MinhaClasse.php");
    
    $objeto1 = new MinhaClasse();
    $objeto2 = new MinhaClasse();
    
    echo $objeto1::$atributo,"\n";
    
    $objeto2::$atributo = 999;
    
    echo $objeto1::$atributo;
?>
Saída
-1
999

Os conceitos vistos para constantes em PHP: Constantes podem ser aplicadas aos atributos de uma classe como pode ser visto na sintaxe abaixo:

Sintaxe
modificador_acesso const NOME_CONSTANTE = valor_inicial;

Para acessar uma constante utilizamos o operador (::) como mostrado abaixo:

Sintaxe
$nome_objeto::NOME_CONSTANTE;
Onde
-
Exemplo 5
//MinhaClasse.php
<?php
class MinhaClasse
{
    public const CONSTANTE = -1;
    //omitido
}
?>

//Main.java
<?php
include("MinhaClasse.php");

$objeto = new MinhaClasse();
echo $objeto::CONSTANTE
?>
Saída
-1

  1. 26/08/2025 - revisão 4 - Ajustes: pontuais, objetivos, targets de links e sintaxes
  2. 20/09/2024 - revisão 3 - Ajuste gramaticais pontuais; outros ajustes
  3. 05/02/2024 - revisão 1 - correção em navegação, sintaxe de acesso a atributo, erros gramaticais e adição de operador ::
  4. 20/09/2023 - versão inicial