Подтвердить что ты не робот

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';

4b9b3361

Ответ 1

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

или

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

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

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

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

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

Ответ 2

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

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

$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

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

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