цитирование констант в php:“это MY_CONSTANT” (мой ПОСТОЯННЫЙ)
Вопрос
Я хочу использовать константу в PHP, но я также хочу поместить ее в двойные кавычки, как переменную.Возможно ли это вообще?
define("TESTER", "World!");
echo "Hello, TESTER";
очевидно, выводит "Привет, ТЕСТИРОВЩИК", но чего я действительно хочу, так это чего-то вроде:
$tester = "World!";
echo "Hello, $tester";
выводит "Привет, Мир!".
Решение
Извините, константы в PHP работают не так.Вы можете заключать переменные в двойные кавычки и heredocs, но не константы.
Другие советы
Я рекомендую вам использовать конкатенацию, потому что:
- Когда вы используете переменную в строке, заключенной в двойные кавычки, ваша видимость не очень хорошая;
- Когда вы используете строку в двойных кавычках, php может обрабатывать медленно;
- Вы не используете константу в строке, потому что у вас нет никакого разделителя, чтобы php знал, что это за константа.
Конкатенация - это правильный путь.
Если только вы не хотите хитрого, мерзкого, неэффективного, порочного обезьяньего способа:
echo preg_replace("/TESTER/",TESTER,$original_content);
ни в коем случае, если только вы не напишете свою собственную функцию синтаксического анализа строк
Я обнаружил, что, когда конкатенация точек константы является проблемой, использование sprintf для получения моей строки обычно является тем путем, которым я хочу пойти в конце.
В качестве альтернативы, сделайте
"this is " . MY_CONSTANT
или
"this is " . constant("MY_CONSTANT");