Смешивание переменной PHP с строковым литералом

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

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

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

echo $test . 'y'

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

echo "$testy"

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

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

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

Ответ 1

echo "{$test}y";

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

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

echo '{$test}y';

выводит

{$test}y

Ответ 3

$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']

Ответ 4

$ test = "cheese"; "$ {Испытание} у";

Это будет выводить сырный

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