Constantes só podem conter valores escalares, isso significa que ela não pode ser um objeto ou uma array, suporta apenas os tipos booleano, inteiro, float e string, por boas práticas é de bom tom que elas sejam nomeadas com letras maiúsculas.
Constantes referenciam um único valor que não é variável, são acessadas em qualquer local do script seu valor não pode ser redefinido nem apagado depois que é declarada, a declaração de uma constante se faz usando a função define( ) da seguinte forma:
<?php
define('NOME_DA_CONSTANTE', 'valor_da_constante');
echo NOME_DA_CONSTANTE; /*chamada da constante retorna a string valor_da_constante */
?>
Para obter uma lista de todas as constantes definidas, use a função get_defined_constants().
<?php
print_r (get_defined_constants()); /* como é uma array, utilize o print_r
/*ou var_dump para poder ler os valores, se tentar lê-los
/*com o uso de print ou echo será apenas retornado o tipo
/*de dados no caso Array*/
?>
As constantes também estão presentes na orientação a objeto, é possível definir uma constante no escopo de uma classe através da palavra chave const seguida do nome da constante e atribuição do valor.
<?php
class exemplo {
const constante = 'value';
}
echo exemplo::constante ; //retorna 'value'
?>
Constantes mágicas
As chamadas constantes mágicas, que na realidade divergem do conceito de constante em alguns pontos, pois podem variar de valor, são mostradas a seguir:
- __LINE__ : retorna o número da linha do script
- __FILE__ : retorna o caminho completo do arquivo
- __FUNCTION__ : retorna o nome da função em que está inserido
- __CLASS__ : retorna o nome da classe
- __METHOD__ : retorna o nome do método da classe