цитирование констант в php:“это MY_CONSTANT” (мой ПОСТОЯННЫЙ)

StackOverflow https://stackoverflow.com/questions/1563654

  •  21-09-2019
  •  | 
  •  

Вопрос

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

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

очевидно, выводит "Привет, ТЕСТИРОВЩИК", но чего я действительно хочу, так это чего-то вроде:

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

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

Это было полезно?

Решение

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

Другие советы

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

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

Конкатенация - это правильный путь.

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

echo preg_replace("/TESTER/",TESTER,$original_content);

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

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

В качестве альтернативы, сделайте

"this is " . MY_CONSTANT

или

"this is " . constant("MY_CONSTANT");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top