Nesta aula estudaremos a definição e uso das constantes. Aprenderemos inicialmente a declarar constantes com a função define() e veremos quais os beneficios na utilização de funções para esse tipo de declaração. |
DEFININDO CONSTANTES COM A FUNÇÃO define()
Em programação, constante é um valor alocado na memória que pode ser acessado por uma referência, mas que não pode ter o seu valor alterado após a mesma ser definida.
O PHP possui 2 sintaxes para definição de constantes e, ainda que ambas tenham funcionamento diferente, o princípio é basicamente o mesmo - definir um valor que não pode ser alterado.
A forma tradicional para definição de valores constantes da-se pelo uso da função define(), essa função, define um valor imutável no escopo global e assim, podemos utiliza-la de qualquer parte do nosso código, porém, não podemos alterar seu valor.
A diferença entre declarar uma constante com a função define() ou então, com a palavra reservada const é que a instrução const declara as constantes em tempo de compilação, enquanto que a função define() declara as constantes em tempo de execução. Ou seja, utilizando a função define() para a declaração, podemos atribuir o nome para a constante no momento em que o código está sendo executado, porém, o mesmo não é possível com a instrução const.
Num comparativo performatico, temos que em algumas situações a definição com a instrução const é executado mais rapidamente enquanto em outras situações, o uso da função define() se mostra mais veloz.
A nomenclatura de constantes é igual a nomenclatura de variáveis e o que irá diferenciar é que as constantes não são precedidas pelo caractere "cifrão". Ainda que não seja obrigatório, o nome de constantes deve ser composto somente por caracteres maiúsculos. A definição de constantes com caracteres maiúsculo é um padrão que vem de outras linguagens e assim, todo programador entende que uma referência com caracteres maiúsculas trata-se de um valor constante.
A definição da função define() é a seguinte:
define(<identificador>, <valor>)
VERIFICANDO SE UMA CONSTANTE EXISTE
É comum verificarmos antes de acessarmos uma constante se a mesma está definida, para isso, temos a função defined().
if(defined("TOTAL"))
echo "Constante declarada."
ACESSANDO CONSTANTES
Para utilizarmos os valores constantes definidos, basta utilizar a referência que foi utilizada na definição ou então, obter o valor definido através da função constant(). Só é necessário a utilização da função constant() quando definimos valores constantes dinamicante, do contrário, basta informar a referência definida na declaração.
DEFININDO CONSTANTES COM A INSTRUÇÃO const
Uma outra forma para a declaração de constantes é através do uso da palavra reservada const. É comum a utilização da instrução const na definição de classe ou então, dentro de um namespace. Porém, isso é somente uma convenção, logo, pode-se utilizar a instrução const para definir constantes onde bem entendermos.
A seguir estamos fazendo uso da instrução const para declararmos uma constante.
const VALOR = 100;
MANIPULANDO VARIÁVEIS POR REFERÊNCIA
O PHP permite o acesso ao endereço de memória de uma variável. Dessa forma, temos que é possível o uso de 2 variáveis que estejam apontando para um mesmo local, isto é, duas variáveis que tenham referências diferentes porém, apontam numa mesma direção.
CONSTANTES MÁGICAS
Chamamos de constantes mágicas a um grupo de constantes que tem por objetivo, retornar informaçõesn sobre a execução atual do código. Assim, temos que com as constantes mágicas, podemos obter por exemplo, o número da linha em que o script está executando, o nome da função, do namespace e outros valores.
Esse conjunto de funções tem por objetivo principal auxiliar na construção de ferramentas de diagnóstico de erros ou então, para outras tarefas administrativas.
echo __LINE__ . PHP_EOL; <1>
echo __FILE__ . PHP_EOL; <2>
echo __DIR__ . PHP_EOL; <3>
echo __FUNCTION . PHP_EOL; <4>
echo __CLASS__ . PHP_EOL; <5>
echo __METHOD__ . PHP_EOL; <6>
echo __NAMESPACE__ . PHP_EOL; <7>
<1> Retorna o número da linha em execução <2> Retorna o path do arquivo que está sendo executado e seu nome <3> Retorna o diretório <4> Retorna o nome da função <5> Retorna o nome da classe <6> Retorna o nome do método <7> Retorna o nome da namespace
EXEMPLO FEITO EM AULA
define("TESTE", 10);
echo TESTE . "\n";
for($x=0; $x<5; $x++)
define("CONSTANTE".$x, $x);
echo CONSTANTE0 . "\n";
echo CONSTANTE4 . "\n";
const VALOR = 1000;
echo VALOR . "\n";
Tags curso, php
Comentários
comments powered by Disqus