Até o lançamento da versão do PHP 7, só era possível criar constantes com dados do tipo inteiro, float, string, boolean, ou NULL, mas com o PHP 7 agora é possível criar constantes do tipo array.
Vamos lá. Definindo uma constante:
define("CONSTANT", "Olá Constantes."); echo CONSTANT; // Resultando em: "Olá Constantes."
Com o PHP 7 criando uma constante do tipo array (matrizes)
Exemplo de constante array:
// array simples: define("CONSTANT_ARRAY", ['pera', 'uva', 'maça',]); echo 'Eu gosto de comer ' . CONSTANT_ARRAY[1]; // Resultando em: "Eu gosto de comer uva"
Também é possível usar arrays multidimensionais:
Exemplo de constante array multimensional:
// array multidimensional: define("CONSTANT_ARRAY_MULTIDIMENSIONAL", [ 'frutas' => ['pera', 'uva', 'maça',], 'carros' => ['fusca', 'chevette', 'passat',], 'mulheres' => ['loira', 'ruiva', 'morena',], ]); echo 'Eu gosto de comer ' . CONSTANT_ARRAY_MULTIDIMENSIONAL['frutas'][1]; // Resultando em: "Eu gosto de comer uva" echo '<br>'; echo 'meu carro é um ' . CONSTANT_ARRAY_MULTIDIMENSIONAL['carros'][2]; // Resultando em: "Meu carro é um passat" echo '<br>'; echo 'As ' . CONSTANT_ARRAY_MULTIDIMENSIONAL['mulheres'][0] . 's são mais bonitas.'; // Resultando em: "As loiras são mais bonitas."
Só lembrando, as constantes são case sensitive, ou seja, se você declarou a mesma em letras maiúsculas, só poderá usá-la com letra maiúscula.
Usando a sintaxe const
Também é possível utilizar a sintaxe const para criar uma constante no PHP, mas essa só poderá ser usada dentro de uma classe:
class MinhaClasse { const MINHACONSTANTE = ['pera', 'uva', 'maça',]; public static function constante() { return self::MINHACONSTANTE; } }
No exemplo acima usei um array simples, a mesma usado no primeiro exemplo, mas agora dentro da classe MinhaClasse.
Seu uso seria algo assim:
$meuArray = MinhaClasse::constante(); print_r($meuArray);
O código acima irá imprimir:
Array ( [0] => pera [1] => uva [2] => maça )
Lembrando que, para obter sucesso com os exemplos acima, é necessário ter a versão 7 do PHP ou superior. As demais versões não dão suporte á constantes do tipo array.
No exemplo, também foi usado a short sintaxe do array. Você também pode usar a sintaxe antiga, mas é uma questão de gosto pessoal. Eu, particularmente, quando escrevo um array, sempre procuro usar a versão curta. Além de ser mais bonita e simples, também se aproxima de outras linguagens, como o JavaScript, por exemplo.