Documentação: PHP: Declaração e atribuição de Constantes

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (4)  (0)

Nesta documentação você aprenderá a declarar e atribuir valores para constantes em PHP. Para isso utilizaremos a função define() e a palavra reservada const, analisando as diferenças entre essas duas abordagens.

Uma constante é um recurso das linguagens de programação que tem como objetivo armazenar um valor em memória de modo que não possa ser alterado. Assim, sempre que necessitarmos declarar um valor fixo para um cálculo, por exemplo, devemos criar uma constante para isso e referenciá-la no local desejado.

Neste documento será apresentado como declarar constantes em PHP com define() e const, e como utilizá-las.

define()

A função define() é a opção mais conhecida do PHP para criar constantes. Utilizamos essa função quando precisamos declarar uma constante com escopo global, isto é, fora do escopo de uma classe.

Exemplo de uso:

define('TEXTO', 'meu texto'); 
//Fora do escopo de uma classe

Também é possível criar constantes dentro de funções. Contudo, essa função pode ser executada apenas uma vez, caso contrário um erro será gerado. A constante definida dessa forma ficará disponível apenas após a execução da função, sendo criada em tempo de execução.

Exemplo de uso de define() em uma função:

function definir_max(){
define("MAX", 10); //Criar constante dentro de uma função
}
 
definir_max();

O acesso aos valores de constantes definidas em funções é feito da mesma forma.

Exemplo de uso:

function definir_max() {
  define("MAX", 10);
}
//Cria a constante declarada na função
definir_max(); 

//Exibe o conteúdo da constante
echo(MAX);    

const()

Outra opção para declarar constantes é utilizar a palavra reservada const. Com ela podemos criar constantes dentro e fora de uma classe. Até a versão anterior ao PHP 5.6, no entanto, const só podia ser aplicada dentro de classes.

Exemplos de uso:

const NOME = 'Alex';  //Fora do escopo de classe
 
class Empresa {
    const NOME_EMPRESA = 'DevMedia'; //Dentro do escopo de classe
}

Assim, declaramos duas constantes: NOME e NOME_EMPRESA.

O acesso aos valores dessas constantes também é bastante simples.

Exemplos de uso:

 //Acessa constante definida em escopo global
echo NOME;                                 

//Acessa constante definida em escopo de classe
echo Empresa::NOME_EMPRESA;
Nota: Para obter o valor de uma constante criada em uma classe deve-se utilizar o operador de resolução de escopo (::).
Sintaxe:
echo NomeDaClasse::CONSTANTE_DESEJADA;

define() ou const?

Com essas opções, é importante saber quando utilizar cada uma.

define():

  • Quando é preciso criar a constante fora do escopo de uma classe (Programação Estruturada);
  • Quando o ideal é definir a constante em tempo de execução;
  • Também pode ser declarada dentro de estruturas de condição e repetição

const:

  • Quando é preciso criar a constante dentro do escopo de uma classe (Programação Orientada a Objetos);
  • Quando o ideal é definir a constante em tempo de compilação.

Nomeação de constantes

Ao nomear uma constante é importante respeitar algumas regras e convenções:

  1. Não iniciar o nome com números;
  2. Não utilizar espaços em branco;
  3. Não utilizar caracteres especiais. Somente underline é permitido;
  4. Definir nomes relevantes, para facilitar o entendimento do código;
  5. Utilizar letras maiúsculas, facilitando a distinção em relação às variáveis.

Constantes mágicas

O PHP oferece algumas constantes especiais que visam facilitar algumas tarefas do dia a dia do programador, por exemplo. Chamadas de constantes mágicas, elas têm o valor definido conforme o contexto de uso. Geralmente exibem informações sobre o arquivo, diretório, classe, função em que foram declaradas.

A Tabela 1 apresenta todas as constantes mágicas do PHP:

Constante mágica

Definição

__LINE__

Conterá o número da linha do script na qual ela foi declarada.

__FILE__

Conterá o caminho completo para o arquivo PHP no qual ela foi declarada.

__DIR__

Conterá o diretório do arquivo no qual ela foi declarada.

__FUNCTION__

Conterá o nome da função na qual ela foi declarada.

__CLASS__

Conterá o nome da classe na qual ela foi declarada.

__METHOD__

Conterá o nome da classe e do método no qual ela foi declarada.

__NAMESPACE__

Conterá o nome namespace no qual ela foi declarada.

Exemplo de uso de constantes mágicas:

echo __LINE__;
echo __FILE__;

A execução desse código retornará o número da linha de código em que __LINE__ foi declarada, assim como o caminho completo do arquivo PHP que contém este código exemplo. Esse caminho fica armazenado na constante mágica __FILE__.

Exemplo prático

Para demonstrar mais alguns exemplos de como declarar e utilizar constantes em PHP, observe as possibilidades a seguir.

Exemplo de uso:

<?php
define( 'NOME', 'Alex Sander' ); //STRING
define ('ALTURA', 1.76);
const ATIVO = true; //BOOL
 
class Empresa {
    const NOME_EMPRESA = 'DevMedia';
    const ANO = 2017; // INTEIRO
}
 
var_dump(NOME);
echo "<br>";
var_dump(ALTURA);
echo "<br>";
var_dump(ATIVO);
echo "<br>";
var_dump(Empresa::NOME_EMPRESA); 
echo "<br>";
var_dump(Empresa::ANO); 
 
echo __FILE__;

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?