Constantes em PHP

Constantes em PHP, como o próprio nome já indica, é um objeto capaz de conter um valor fixo que nunca será alterado; uma vez definida, seu valor não poderá ser modificado até o final da execução do seu script.

Nota: Caso tente modificar o valor de uma constante, o PHP irá retornar um erro!

Semelhante às variáveis, também podemos utilizar o valor das constantes em qualquer parte do código, entretanto, devemos tomar cuidado para não utilizar os nomes das constantes pré-definidas pelo PHP. Existem várias constantes que já estão criadas e são utilizadas pela própria linguagem.

Comparação entre e Variáveis e Constantes em PHP

Vejamos abaixo uma pequena comparação entre as variáveis e as constantes em PHP:

Alteração de variáveis em PHP

Como mostrei anteriormente, utilizamos o sinal de cifrão para criar uma variável.

Por exemplo:

$valor = 100;

A variável $valor será o mesmo que 100 em qualquer parte do seu script, no entanto, eu posso falar que $variável será 200 no momento em que precisar modificar seu valor.

Veja um outro exemplo:

<?php
// Aqui o valor é 100
$variavel = 100;

// Exibe 100 na tela
echo $variavel;

// O valor agora é 200
$variavel = 200;

// Exibe 200 na tela
echo $variavel;

Perceba que a mesma variável tem dois valores diferentes no decorrer do script, um em cada parte.

Não há nenhum problema em alterar o valor de uma variável qualquer em tempo de execução; simplesmente escreva o que deseja e a mágica está feita.

Criação de constantes de PHP

Utilizamos a função define() do PHP para criar uma constante. Veja um exemplo:

define("valor", "100");

Com a função acima, definimos que, em qualquer parte do código, “valor” será “100“. Com isso, até o final da execução do meu script o valor será 100, não existe uma maneira de mudar isso.

Por exemplo, se eu tentar modificar o valor da constante:

<?php
// Cria a constante "valor"
define("valor", "100");

// Exibe a constante (100)
echo valor;

// Tento alterar o valor de uma constante
// O trecho abaixo vai gerar um erro
// Notice: Constant valor already defined in arquivo/do/erro.php on line 9
define("valor", "200");

// O valor aqui continua sendo 100
echo valor;

Perceba que, além de o valor da constante não ser alterado, seu script ainda mostrará um erro na tela.

Diferenças entre variáveis e constantes em PHP

A primeira diferença, como você viu anteriormente, é na criação. Enquanto na variável utilizamos apenas o $ (cifrão) para definir seu valor, nas constantes utilizamos uma função define().

define('NOME_DA_CONSTANTE', 'Valor da constante', false);

Nota: As constantes também são case sensitive (fazem distinção entre letras maiúsculas e minúsculas), isso significa que CONSTANTE é totalmente diferente de Constante. O último argumento da função define controla isso; se este for um valor booleano false, ou se for omitido (como fizemos nos primeiros exemplos), o interpretador do PHP vai distinguir letras maiúsculas de letras minúsculas; caso seja um valor booleano true, o PHP não vai diferenciar. Veja no exemplo abaixo:

<?php
// Cria uma constante com letras minúsculas
// O último argumento (true), diz ao interpretador do php
// para não verificar letras maiúsculas e minúsculas
define('constante', 'Valor da constante', true);

// Exibe "Valor da constante" na tela
// mesmo utilizando letras maiúsculas
// sendo que ela foi definida com letras minúsculas
echo CONSTANTE;

Outro ponto importante é na utilização; ao invés de “chamar” uma constante com o sinal de $ (cifrão) como fazemos com as variáveis, utilizamos apenas seu nome propriamente dito.

Veja uma exemplo para exibir o valor 100 no script abaixo:

// Define a variável $valor
$valor = 100;

// Define a constante valor
define("valor", "100");

// Imprime a variável
echo $valor;

// Imprime a constante
echo valor;

Como você viu no exemplo acima, existe uma pequena diferença na utilização das constantes, se as compararmos às variáveis.

Verificando se uma constante já está definida

Como descrevi anteriormente, se você tentar definir uma constante que já está definida, além do valor da constante não ser alterado, o PHP irá retornar um erro na tela explicando o que está acontecendo.

Para evitar este tipo de problema, podemos utilizar a função defined() para verificar se a constante já está definida.

<?php
// Define a constante
define( 'CONSTANTE', 'valor' );

// Verifica se a constante está definida e exibe o valor
if ( defined( 'CONSTANTE' ) ) {
	// Exibe o valor da constante
	echo CONSTANTE;
}

// Verifica se a constante NÃO está definida;
// se não, define seu valor
if ( ! defined( 'CONSTANTE' ) ) {
	// Define a constante
	define( 'CONSTANTE', 'valor' );
}

Não se preocupe com a estrutura condicional que aparece no trecho de código acima, você vai aprender a fazer isso posteriormente nessa mesma série de artigos sobre PHP.

Por agora, entenda que if verifica se uma condição é verdadeira. Se você utilizar um sinal de exclamação (!), if verifica se a condição o contrário do que você deseja:

if ( condição ) {
	ação
}

if ( ! contrário da condição ) {
	ação
}

Dicas sobre constantes em PHP

Seguem algumas dicas sobre as constantes no seu script PHP:

  • Sempre se lembre: o valor de uma constante nunca pode ser alterado na execução do script;
  • Pense bem antes de criar uma constante;
  • Considere o uso de variáveis dependendo do caso;
  • Normalmente, utilizamos todas as letras maiúsculas quando definimos uma constante (tente utilizar um padrão);
  • Cuidado com as constantes predefinidas pelo PHP.

Vídeo tutorial

O vídeo tutorial abaixo detalha o que foi descrito acima:

Link do vídeo: https://www.youtube.com/watch?v=tQ3uUWvpWe4

Aulas anteriores

Caso queira acessar o links para aulas anteriores:

Concluindo

Em caso de dúvidas, críticas, ou qualquer outra coisa que queira falar, basta deixar um comentário aí abaixo. Estamos ansiosos para ouvir a sua opinião.

Veja todas as aulas, e mais, na categoria Curso de PHP do Tutsup.