Constantes em PHP e como declarar constantes
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
O conceito de constantes
Uma constante é um termo que identifica um único valor. O valor da constante não pode ser alterado enquanto o script estiver em execução. Os nomes das constantes só podem começar com uma letra ou sublinhado (o sinal $ não pode ser colocado antes do nome da constante).
Constantes, diferentemente de variáveis, são automaticamente globais em todo o script. Em suma, uma constante é semelhante a uma variável, mas uma vez especificada, não pode ser alterada
Definição de constante
Sintaxe Inicializando constantes em PHP:
define(name, value, case-insensitive)
Por exemplo:
<?php define('VERSION','8.0'); echo VERSION; // output: 8.0 ?>
Matriz Constante
No PHP 8, uma constante de array pode ser criada usando a função define().
<?php define("CARS", [ "Alfa Romeo", "BMH", "Toyota", "Range-Rover" ]); var_dump(CARS); // array(4) { [0]=> string(10) "Alfa Romeo" [1]=> string(3) "BMH" [2]=> string(6) "Toyota" [3]=> string(11) "Range-Rover" }
Constantes existem no escopo global. Portanto, eles podem ser usados em todo o script.
Exemplo usando constantes dentro da função, mesmo que sejam definidas fora da função:
<?php define("Hello", "what's new in PHP?"); function myTest() { echo Hello; } myTest(); //output: what's new in PHP? ?>
Constantes mágicas em PHP (constantes predefinidas)
No PHP, o valor de algumas constantes predefinidas muda dependendo do contexto em que são usadas. Essas constantes são chamadas de constantes mágicas. Eles não diferenciam maiúsculas de minúsculas. Existem nove constantes mágicas em PHP, oito das quais começam e terminam com um sublinhado duplo (__):
- __LINHA__
- __ARQUIVO__
- __DIR__
- __FUNÇÃO__
- __CLASSE__
- __CARACTERÍSTICA__
- __MÉTODO__
- __NAMESPACE__
- ClassName::classe
Nomes constantes | Descrição |
__LINHA__ | Retorna o número da linha atual |
__ARQUIVO__ | Retorna o caminho absoluto do arquivo atual |
__DIR__ | Retorna o caminho do diretório atual |
__FUNÇÃO__ | Retorna a função atual que está sendo chamada |
__CLASSE__ | Retorna a classe atual |
__CARACTERÍSTICA__ | Retorna o TRAIT em uso |
__MÉTODO__ | Retorna o método atual |
__NAMESPACE__ | Retorna o namespace atual |
ClassName::classe | Retorna a classe atual |
Ao contrário das constantes regulares, todas as 9 dessas constantes são resolvidas em tempo de compilação em vez de em tempo de execução.