Escolar Documentos
Profissional Documentos
Cultura Documentos
Constantes
Índice
• Sintaxe
• Constantes Predefinidas
• Constantes Mágicas
Uma constante é um identificador (nome) para um valor simples. Como o nome sugere, esse valor não
pode mudar durante a execução do script (exceto para as constantes mágicas, que na verdade não são
constantes). As constantes diferenciam maiúsculas de minúsculas. Por convenção, identificadores de
constantes são sempre em maiúsculas.
Nota:
Antes do PHP 8.0.0, as constantes definidas usando a função define() podem não
diferenciar maiúsculas de minúsculas.
O nome de uma constante segue as mesmas regras de qualquer rótulo no PHP. Um nome de constante
válido começa com uma letra ou sublinhado, seguido por qualquer número de letras, números ou
sublinhados. Como uma expressão regular, seria expresso assim: ^[a-zA-Z_\x80-\xff][a-zA-
Z0-9_\x80-\xff]*$
É possível usar define() para definir constantes com nomes reservados ou mesmo inválidos, cujo valor
só pode ser recuperado com a função constant(). No entanto, isso não é recomendado.
Dica
?>
Nota: Para os exemplos aqui, uma letra é a-z, A-Z e os caracteres ASCII de 128 a 255
(0x80-0xff).
file:///C:/Users/Mtds/AppData/Local/Temp/~hh8494.htm 24/01/2024
Constantes Page 2 of 4
Como as superglobals, o escopo de uma constante é global. As constantes podem ser acessadas de
qualquer lugar em um script, independentemente do escopo. Para mais informações sobre escopo, leia a
seção do manual escopo de variáveis.
Nota: A partir do PHP 7.1.0, as constantes de classe podem ser declaradas com visibilidade
protected ou private, tornando-as disponíveis apenas no escopo hierárquico da classe em
que foram definidas.
Sintaxe
As constantes podem ser definidas usando a palavra-chave const ou usando a função define().
Enquanto define() permite que uma constante seja definida usando uma expressão arbitrária, a palavra-
chave const possui restrições, conforme descrito no próximo parágrafo. Uma vez definida, a constante
nunca poderá ser modificada ou anulada.
Ao usar a palavra-chave const, somente expressões escalares (bool, int, float e string) e arrays
constantes contendo apenas expressões escalares são aceitos. É possível definir constantes como um
resource, mas isso deve ser evitado, pois pode causar resultados inesperados.
O valor de uma costante é acessado simplesmente informando seu nome. Ao contrário das variáveis,
uma constante não é precedida por um $. Também é possível usar a função constant() para ler o valor
de uma constante se o nome da constante for obtido dinamicamente. Use get_defined_constants() para
obter uma lista de todas as constantes definidas.
Se uma constante indefinida for usada, um erro Error será lançado. Antes do PHP 8.0.0, constantes
indefinidas eram interpretadas como uma simples string, ou seja, CONSTANTE vs. "CONSTANTE".
Esse mecanismo alternativo tornou-se obsoleto a partir do PHP 7.2.0 e um alerta de nível E_WARNING
será lançado quando isso acontecer. Antes do PHP 7.2.0, um erro de nível E_NOTICE era lançado.
Veja também por que $foo[bar] é errado (a não ser que bar seja uma constante). Isso não se aplica às
constantes (totalmente) qualificadas, que sempre lançarão um Error se forem indefinidas.
Nota: Para verificar se uma constante está definida, use a função defined().
file:///C:/Users/Mtds/AppData/Local/Temp/~hh8494.htm 24/01/2024
Constantes Page 3 of 4
echo CONSTANTE;
// Expressão escalar
const OUTRA_CONSTANTE = CONSTANTE . '; Adeus Mundo';
echo OUTRA_CONSTANTE;
// Array constante
define('ANIMAIS', array(
'cachorro',
'gato',
'pássaro'
));
echo ANIMAIS[1]; // imprime "gato"
?>
Nota:
Veja Também
• Constantes de Classe
Constantes Predefinidas
O PHP fornece um grande número de constantes predefinidas para qualquer script executado. Muitas
dessas constantes, no entanto, são criadas por várias extensões e só estarão presentes quando essas
extensões estiverem disponíveis, seja por carregamento dinâmico ou porque foram compiladas.
Constantes Mágicas
Existem nove constantes mágicas que mudam dependendo de onde são usadas. Por exemplo, o valor de
__LINE__ depende da linha em que é usada no script. Todas essas constantes "mágicas" são resolvidas
em tempo de compilação, ao contrário das constantes regulares, que são resolvidas em tempo de
execução. Essas constantes especiais não diferenciam maiúsculas de minúsculas e são as seguintes:
file:///C:/Users/Mtds/AppData/Local/Temp/~hh8494.htm 24/01/2024
Constantes Page 4 of 4
Nome Descrição
__LINE__ O número da linha atual do arquivo.
__FILE__
O caminho completo e o nome do arquivo com links simbólicos resolvidos. Se
usada dentro de um include, o nome do arquivo incluído será retornado.
O diretório do arquivo. Se usada dentro de um include, o diretório do arquivo
__DIR__ incluído será retornado. Isso é equivalente a dirname(__FILE__). O nome do
diretório não possui barra no final, a menos que seja o diretório raiz.
__FUNCTION__ O nome da função ou {closure} para funções anônimas.
O nome da classe. O nome da classe inclui o namespace em que foi declarada (por
__CLASS__ exemplo, Foo\Bar). Quando usada em um método de trait, __CLASS__ é o nome
da classe em que o trait for usado.
__TRAIT__
O nome do trait. O nome do trait inclui o namespace em que foi declarado (por
exemplo, Foo\Bar).
__METHOD__ O nome do método da classe.
__NAMESPACE__ O nome do namespace atual.
ClassName::class O nome totalmente qualificado da classe.
Veja Também
• ::class
• get_class()
• get_object_vars()
• file_exists()
• function_exists()
file:///C:/Users/Mtds/AppData/Local/Temp/~hh8494.htm 24/01/2024