citando constantes no php:"este é um MY_CONSTANT"
Pergunta
Eu quero usar uma constante em PHP, mas eu também quero colocá-lo dentro de aspas duplas, como uma variável.Isso é possível?
define("TESTER", "World!");
echo "Hello, TESTER";
obviamente saídas "Olá, TESTER", mas o que eu realmente quero é algo como:
$tester = "World!";
echo "Hello, $tester";
saídas de "Hello, World!".
Solução
Desculpe, essa não é a maneira constantes no PHP funciona.Você pode colocar as variáveis em aspas duplas e heredocs mas não constantes.
Outras dicas
Eu recomendo você para usar concatenação porque:
- Quando você usa uma variável em uma string de citações duplas, sua visibilidade não é boa;
- Quando você usa uma string de citações duplas, o PHP pode processar lentamente;
- Você não usa uma constante em uma string, porque não tem nenhum delimitador para o PHP sabe o que é a constante.
Concatenação é o caminho a percorrer.
A menos que você queira a maneira Hokey, desagradável, ineficiente e maligna de:
echo preg_replace("/TESTER/",TESTER,$original_content);
de jeito nenhum, a menos que você escreva sua própria função de análise de string
Descobri que, quando a concatenação do ponto de uma constante é um problema, usar o sprintf para obter minha string geralmente é o jeito que eu quero ir no final.
Como alternativa, faça
"this is " . MY_CONSTANT
ou
"this is " . constant("MY_CONSTANT");