Reputation: 6799
please check the following code.
$imagebaseurl = 'support/content_editor/uploads/$name';
The $imagebaseurl
is a variable that is containing a link to my image folder (uploads) and inside the folder I have some other folders which are named after my users name. for example: I have a user who's name is john, so the the link should look like this-> support/content_editor/uploads/john
.
The main idea is when any user is logged in and browses his image gallery I want to take him to his own gallery which basically is named after his name.
When he will visit the gallery the value of $name
in the link will come from the user's login name (from session). Now the problem is as you probably have already understood that the placement of $name
in the above link is wrong and that is why it is not working. I am getting this whole URL> (support/content_editor/uploads/$name) instead of (support/content_editor/uploads/john)
Now could you please tell me how to use the $name
in this $imagebaseurl = 'support/content_editor/uploads/$name';
Upvotes: 29
Views: 68566
Reputation: 565
I couldn't disagree more with the previous post.
I'd almost go as far to call it bad practice to use
$varname = 'EXAMPLE';
$fulltext = "This is an $varname";
Its more maintainable, from my experience, to utilize a good friend of mine known as sprintf();
define('CONST_NAME', 'This is an example of a better %s');
define('EXAMPLE', sprintf(CONST_NAME, 'practice'));
echo EXAMPLE;
Why? The first one may seem more clear, but the second one is much more re-usable. I recommend utilizing sprintf over the php magic double quote nonesense which exists, literally, in NO other language.
http://php.net/manual/en/function.sprintf.php
This is also the practice used very similar to C#, and many other languages.
See also: https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx
Upvotes: -7
Reputation: 63442
$imagebaseurl = 'support/content_editor/uploads/' . $name;
or
$imagebaseurl = "support/content_editor/uploads/{$name}";
Note that if you use double quotes, you can also write the above as:
$imagebaseurl = "support/content_editor/uploads/$name";
It's good though to get in the habit of using {$...}
in double quotes instead of only $...
, for times where you need to insert the variable in a string where it's not obvious to PHP which part is the variable and which part is the string.
If you want the best performance, use string concatenation with single quotes.
Upvotes: 70