请检查以下代码。
$imagebaseurl = 'support/content_editor/uploads/$name';
$imagebaseurl
是一个变量,其中包含指向我的图像文件夹(上传)的链接,在文件夹中我有一些以我的用户名命名的其他文件夹。例如:我有一个名叫john的用户,所以链接应该像这样 - > support/content_editor/uploads/john
。
主要的想法是,当任何用户登录并浏览他的图片库时,我想把他带到他自己的画廊,该画廊基本上以他的名字命名。
当他访问图库时,链接中$name
的值将来自用户的登录名(来自会话)。现在问题是因为您可能已经理解$name
在上述链接中的位置是错误的,这就是它无法正常工作的原因。我正在获取整个网址> (support / content_editor / uploads / $ name)而不是(support / content_editor / uploads / john)
现在,请您告诉我如何使用此$name
$imagebaseurl = 'support/content_editor/uploads/$name';
答案 0 :(得分:42)
$imagebaseurl = 'support/content_editor/uploads/' . $name;
或
$imagebaseurl = "support/content_editor/uploads/{$name}";
请注意,如果您使用双引号,您也可以将上面的内容写为:
$imagebaseurl = "support/content_editor/uploads/$name";
虽然习惯在双引号而不是{$...}
中使用$...
,但是你需要在字符串中插入变量,而PHP中哪些部分不明显是变量,哪个部分是字符串。
如果您想获得最佳性能,请使用带单引号的字符串连接。
答案 1 :(得分:-3)
我对上一篇文章不能不同意。
我差点把它称为使用
的不良做法$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 magic double quote nonesense,字面意思是,没有其他语言存在。
http://php.net/manual/en/function.sprintf.php
这也是与C#和许多其他语言非常相似的做法。
另请参阅:https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx