PHP Básico — Constantes

Victor Hugo Rocha
Training Center
Published in
2 min readJul 23, 2018

Olá, DevZ.

Uma constante é um identificador para um valor único. Como o nome sugere, esse valor não pode mudar durante a execução do script (exceto as constantes mágicas, que não são constantes de verdade). As constantes são case-sensitive por padrão. Por convenção, identificadores de constantes são sempre em maiúsculas.

<?php// VÁLIDO
define("ABRA", "063");
define("GOL1", "075");
define("MEGA_GYARADOS", "130");
// INVÁLIDO
define("9TALES", "038");
// VÁLIDO, PORÉM É UMA MÁ PRÁTICA
define("__POKEMON__", "Gonna catch'all!");
?>

Como as superglobals, o escopo de uma constante é global. Você pode acessar constantes de qualquer lugar em seu script sem se preocupar com o escopo.

Constantes no Laravel

Segue mais um exemplo usando Pokemons.

<?php
namespace App;class Pokemon {
const TOTAL = 151;
...
}
?>

Então, adicione um alias no arquivo config/app.php.

aliases' => [
//...
'Pokemon' => App\Pokemon::class,

Assim, você pode acessar a constante onde você quiser (controllers ou blade files): Pokemon::TOTAL. Você também pode criar um arquivo constant.php dentro da sua pasta app e mapeá-la usando o arquivo composer.json.

...
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/helpers.php",
"app/config/constants.php"
]
}

Essa forma NÃO é uma boa prática e não é recomendada, é apenas um exemplo. A MELHOR MANEIRA de se fazer isso é criando um arquivo dentro da pasta config com um array de valores e acessando ele através do Helper Config seguindo o exemplo abaixo.

// CRIANDO UM ARRAY COM OS VALORES
// charmander.php
return [
'moves' => [
'growl' => 0,
'scratch' => 40,
'ember' => 40,
'smokescreen' => 0,
]
];
// ACESSANDO OS VALORES CONSTANTES
Config::get('charmander.moves');
// ou se quiser especificar um
Config::get('charmander.moves.ember'); // 40

“MAGIC” Constants

O PHP providencia uma série de constantes definidas pelo Core da linguagem. Você pode conferir a lista de magic constants na documentação.

--

--