Constantes e Enums PHP

Capa Curso PHP
Tempo de leitura: 4 minutos

Constantes e Enums PHP: Constantes e Enums (Enumerações) são mecanismos essenciais no PHP para definir valores que não mudam durante a execução do script. Seu uso é fundamental para aumentar a legibilidade, a segurança e a manutenibilidade do código, substituindo “números mágicos” e strings soltas por identificadores nomeados.

1. 🔑 Constantes: Valores Fixos

Uma constante é um identificador para um valor simples e imutável. Depois de definida, seu valor não pode ser alterado.

A. Tipos de Constantes

TipoDefiniçãoAcessoExemplo PHP
GlobalFora de classes, usando a função define().Em qualquer lugar do script.define('API_KEY', 'abc12345');
ClasseDentro de uma classe, usando a palavra-chave const.Via NomeDaClasse::CONSTANTE.class Config { const VERSAO = '1.0'; }
MágicaDefinidas pelo PHP, alteram-se com o contexto (ex: linha, arquivo).Em qualquer lugar do script.echo __LINE__; (Retorna o número da linha atual)

Usos Comuns de Constantes

  • Configurações: URLs de base, limites de recursos, chaves criptográficas.
  • Flags Simples: Indicadores numéricos ou booleanos para controle de comportamento.
  • Valores Matemáticos: define('PI', 3.14159);

Exemplo de Constante de Classe

PHP

<?php
class StatusHTTP {
    public const OK = 200;
    public const NOT_FOUND = 404;
}

echo StatusHTTP::OK; // Saída: 200
?>

2. 🛡️ Enums (Enumerações) (PHP 8.1+)

Enums são um tipo de dado introduzido no PHP 8.1 que representa um conjunto finito de valores nomeados. Eles oferecem uma alternativa mais segura e tipada do que usar constantes de classe para representar estados ou opções.

A. Sintaxe e Backed Enums

Enums podem ser simples (Pure Enums) ou Backed (com valor associado). Os Backed Enums podem ter valores do tipo string ou int.

PHP

<?php
// Enum: Representa um conjunto finito de cores
enum Cor: string { // Backed Enum com tipo string
    case Vermelho = '#FF0000';
    case Verde = '#00FF00';
    case Azul = '#0000FF';
}

// Acessando o caso e seu valor
$corSelecionada = Cor::Vermelho; 
echo $corSelecionada->name; // Saída: Vermelho (Nome do caso)
echo $corSelecionada->value; // Saída: #FF0000 (Valor associado)
?>

B. Usos e Benefícios de Enums

  • Tipagem Forte: Você pode usar o Enum como um tipo de dado em métodos e atributos, garantindo que apenas um dos casos definidos seja aceito.
  • Estados de Objeto: Ideal para representar estágios em um fluxo (ex: enum StatusPedido { case Pendente; case Enviado; case Entregue; }).
  • Legibilidade: Substitui constantes ou strings em switch statements por objetos.
  • Métodos e Atributos: Enums podem ter seus próprios métodos e atributos, adicionando lógica específica a cada caso ou ao Enum como um todo.

3. ⚖️ Comparação e Melhores Práticas

A principal diferença reside no nível de tipo de segurança e na estrutura.

CaracterísticaConstantes (Global/Classe)Enums (PHP 8.1+)
FinalidadeArmazenar valores simples e imutáveis.Criar um novo tipo de dado com um conjunto finito de valores.
Tipo de SegurançaBaixa. Apenas um valor simples (string, int, etc.).Alta. O tipo é o próprio Enum; métodos só aceitam casos válidos.
EstruturaIdentificador simples (plano).Objeto com métodos (name, value) e a possibilidade de lógica adicional.
Melhor paraChaves de API, URLs de configuração, valores matemáticos.Estados de sistema, opções, validação de inputs.

Boas Práticas

  1. Use Enums para Estados e Opções: Sempre que precisar representar um conjunto limitado de opções (status, tipos de usuário, etc.), use Enums para obter tipagem e segurança.
  2. Use Constantes para Chaves: Use constantes para valores únicos e imutáveis (chaves de API, paths de diretório).
  3. Nomeclatura: Use nomes em MAIÚSCULAS para constantes (por convenção: MAX_ITEMS). Para Enums, use PascalCase para o nome do Enum (Cor) e os nomes dos casos (Vermelho).
  4. Organização: Agrupe Enums e constantes de classe em um namespace ou em arquivos separados para fácil localização.

✅ Conclusão Constantes e Enums PHP

Constantes e Enums PHP: Enquanto as Constantes (globais e de classe) são fundamentais para armazenar valores imutáveis simples, a introdução dos Enums no PHP 8.1 revolucionou a forma como definimos estados e opções. Enums oferecem tipagem forte, segurança e capacidade de anexar lógica, tornando-se a escolha superior para modelar conjuntos finitos de opções e criar código mais limpo, seguro e expressivo.

Toda jornada tem um início, e o início para se tornar um desenvolvedor back-end é dominar as seguintes tecnologias, que você encontra aqui mesmo:

SQL
SQL
Capa Curso PHP
PHP
Laravel
Laravel

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.