Цитируя константы в php: "это MY_CONSTANT"

Я хочу использовать константу в PHP, но я также хочу поместить ее в двойные кавычки, как переменную. Это вообще возможно?

define("TESTER", "World!");
echo "Hello, TESTER";

очевидно выдает "Hello, TESTER", но я действительно хочу что-то вроде:

$tester = "World!";
echo "Hello, $tester";

выводит "Привет, мир!"

+19
источник поделиться
6 ответов

Извините, это не то, как работают константы в PHP. Вы можете поместить переменные в двойные кавычки и heredocs, но не константы.

+16
источник

Я рекомендую использовать конкатенацию, потому что:

  • Когда вы используете переменную в строку с двойными кавычками, ваша видимость не хороша;
  • Когда вы используете двойную кавычку, php может обрабатывать медленно;
  • Вы не используете константу в строке, потому что не имеете никакого разделителя, чтобы php знал, что такое константа.
+5
источник

Конкатенация - это путь.

Если вам не нужен хоккей, противный, неэффективный, злой способ обезьяны:

echo preg_replace("/TESTER/",TESTER,$original_content);
+3
источник

нет, если вы не напишете собственную функцию разбора строк

+1
источник

Я обнаружил, что когда dot-concatenation константы является проблемой, использование sprintf для получения моей строки обычно является способом, которым я хочу идти в конце.

+1
источник

Или же сделайте

"this is " . MY_CONSTANT

или

"this is " . constant("MY_CONSTANT");
0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос