PHP: использование переменной внутри двойных кавычек

проверьте следующий код.

$imagebaseurl = 'support/content_editor/uploads/$name'; 

$imagebaseurl – это переменная, содержащая ссылку на мою папку с изображениями (загружает), а внутри папки у меня есть другие папки, имена которых называются именем моего пользователя. например: у меня есть имя пользователя john, поэтому ссылка должна выглядеть так:> support/content_editor/uploads/john .

Основная идея – когда любой пользователь входит в систему и просматривает свою галерею изображений, я хочу занести его в свою собственную галерею, которая в основном названа в честь его имени.

Когда он посетит галерею, значение $name в ссылке будет получено от имени пользователя (от сеанса). Теперь проблема в том, что вы, вероятно, уже поняли, что размещение $name в приведенной выше ссылке неверно, и поэтому она не работает. Я получаю весь этот URL> (support / content_editor / uploads / $ name) вместо (support / content_editor / uploads / john)

Теперь не могли бы вы рассказать мне, как использовать $name в этой $imagebaseurl = 'support/content_editor/uploads/$name';

 $imagebaseurl = 'support/content_editor/uploads/' . $name; 

или

 $imagebaseurl = "support/content_editor/uploads/{$name}"; 

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

 $imagebaseurl = "support/content_editor/uploads/$name"; 

Хорошо, хотя и привык использовать {$...} в двойных кавычках вместо $... , в то время, когда вам нужно вставить переменную в строку, где это не очевидно для PHP, частью которой является переменная и какая часть является строкой.

Если вы хотите получить лучшую производительность, используйте конкатенацию строк с одинарными кавычками.

Я не мог больше не соглашаться с предыдущим сообщением.

Я почти зашел так далеко, чтобы называть это плохой практикой

 $varname = 'EXAMPLE'; $fulltext = "This is an $varname"; 

По моему опыту, он более удобен, чтобы использовать моего хорошего друга, известного как sprintf ();

 define('CONST_NAME', 'This is an example of a better %s'); define('EXAMPLE', sprintf(CONST_NAME, 'practice')); echo EXAMPLE; 

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

http://php.net/manual/en/function.sprintf.php

Это также практика, очень похожая на C # и многие другие языки.

См. Также: https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx