Uma constante é uma variável com um valor que não pode ser alterado no script. Tal valor deve ser atribuído ao mesmo tempo quando a constante é criado. O PHP fornece dois métodos para criar constantes: o modificador “const” e a função “define”.

const

O modificador const é usado para criar constantes de classe. Ao contrário de propriedades regulares, constantes de classes não têm um nível de acesso especificado, eles estão sempre visível publicamente. Eles também não usam o cifrão ($). A convenção de nomenclatura para constantes é todo em maiúsculas, com sublinhados separando cada palavra.

class MyCircle
{
    const PI = 3.14;
}

Deve ser atribuída um valor quando eles são criados. Como propriedades estáticas, uma constante só pode ser inicializado com um valor constante e não com uma expressão. Constantes de classe são referenciados da mesma forma como propriedades estáticas, exceto que eles não usam o cifrão.

<?php
    echo MyCircle::PI; // "3.14"
?>

O modificador const não pode ser aplicado a variáveis ​​locais ou parâmetros. No entanto, a partir do PHP 5.3 const pode ser usado para criar constantes globais. Tal constante é definido no âmbito global e pode ser acedida em qualquer lugar no script.

<?php
    const PI = 3.14;

    echo PI; // "3.14"
?>

Define

A função define pode criar ambas,  constantes globais e locais, mas não constantes de classe. O primeiro argumento para esta função é o nome da constante e o segundo é o seu valor.

<?php
    define('DEBUG', 1);
?>

Assim como as constantes criados com const, definir constantes são usados ​​o sinal de dólar e seu valor não pode ser modificado.

<?php
    echo DEBUG; // "1"
?>

Com constantes criadas com const, o valor para definir pode ser qualquer tipo de dados escalar: integer, float, string ou bool. No entanto, ao contrário de const a função de define permite uma expressão para ser utilizada na atribuição, tal como uma variável ou o resultado de uma expressão matemática.

<?php
    define('ONE', 1); // 1

    define('TWO', ONE+1); // 2
?>

Constante diferenciam maiúsculas de minúsculas por padrão. No entanto, a função define leva um terceiro argumento opcional que pode ser definido como true para criar uma constante de maiúsculas e minúsculas.

<?php
    define('DEBUG', 1, true);

    echo debug; // "1"
?>

Para verificar se uma constante já existe a função define pode ser utilizada. Esta função funciona tanto para constantes criados com const e define.

<?php
    if (!defined('PI'))
    {
        define('PI', 3.14);
    }
?>

Const e define

O modificador const cria uma constante em tempo de compilação. Em contraste, define cria uma constante de tempo de execução que não está definido até que em tempo de execução. Esta é a razão pela qual constantes define  podem ser atribuídos com valores expressionais, enquanto const requer valores constantes que são conhecidos somente em tempo de compilação.

<?php
   const PI = 3.14; // compile-time constant

   define('BIT_2', 1 << 2); // run-time constant
?>

const pode ser usado para constantes de classe e para definir constantes locais. No entanto, ao criar constantes globais ambos const e define são permitidos. Nestas circunstâncias usando const é geralmente preferível. Porque const é um construtor de linguagem que ele lê melhor do que define que é uma função. Constantes de tempo de compilação também são ligeiramente mais rápido do que em tempo de execução constantes. A única excepção é quando a constante condicionalmente é definido, ou um valor de expressão é necessário, neste caso, define deve ser usado.

Diretriz para Constante

Em geral, é uma boa ideia criar constantes ao invés de variáveis ​​se seus valores não precisam ser alterados. Isso garante que as variáveis ​​não será alterada em qualquer lugar no script por engano, o que por sua vez ajuda a evitar erros.

Constates mágicas

O PHP fornece oito constantes predefinidas. Estes são chamados de constantes mágicas como os seus valores mudam dependendo de onde eles são usados.

__LINE__       Número da linha atual do arquivo.
__FILE__       Caminho completo e nome do arquivo.
__DIR__        Diretório do arquivo.
__FUNCTION__   Nome da função.
__CLASS__      Nome da classe, incluindo namespace.
__TRAIT__      Nome Trait incluindo namespace.
__METHOD__     Nome do método de classe.
__NAMESPACE__  Namespace atual.

Constantes mágicas são especialmente úteis para fins de depuração. Por exemplo, o valor de __ LINE__ mostra a linha em que ele aparece no script.

<?php
if(!isset($var))
{
    echo '$var não definido na linha ' . __LINE__;
}
?>

LINK Importantes

http://php.net/manual/pt_BR/language.constants.php

http://php.net/manual/pt_BR/language.constants.predefined.php

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.