Смешивание PHP-переменной со строковым литералом - PullRequest
124 голосов
/ 20 марта 2011

Кто-нибудь знает более эффективный способ сделать это?

Скажем, у меня есть переменная $test, и она определяется как: $test = 'cheese'

Я хочу вывести cheesey, что я могу сделать так:

echo $test . 'y'

Но я бы предпочел упростить код до чего-то более похожего (что не сработает):

echo "$testy"

Этот пример тривиален, но иногда я хочу добавить строку непосредственно после переменной, которую я заключил в кавычки (например, при создании запроса MySQL), и подумал, есть ли способ обработать y как если бы она была отделена от переменной, без необходимости отделять ее.

Работает следующий пример, который лучше читается в выражении echo, но это не то, что я хочу:

$test = 'cheese';
$y = 'y';
echo "$test$y";

Ответы [ 4 ]

201 голосов
/ 20 марта 2011
echo "{$test}y";

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

Кроме того, это не работает с одинарными кавычками. Итак:

echo '{$test}y';

выдаст

{$test}y
47 голосов
/ 20 марта 2011

Вы можете использовать {} вокруг вашей переменной, чтобы отделить ее от того, что следует после:

echo "{$test}y"

Для справки, вы можете взглянуть на Синтаксический анализ переменной - Complex (curly) синтаксис раздел руководства по PHP.

0 голосов
/ 13 июля 2019

$ test = "cheese";"$ {test} y";

Выводит cheesy

Именно то, что вы ищете.

0 голосов
/ 18 мая 2017
$bucket = '$node->' . $fieldname . "['und'][0]['value'] = " . '$form_state' . "['values']['" . $fieldname . "']";

print $bucket;

выход:

$node->mindd_2_study_status['und'][0]['value'] = $form_state['values']
['mindd_2_study_status']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...