PHP: usando uma variável dentro de duaspas

por favor, verifique o seguinte código.

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

O $imagebaseurl é uma variável que contém um link para a minha pasta de imagens (uploads) e dentro da pasta eu tenho algumas outras pastas que são nomeadas após o nome do meu usuário. por exemplo: eu tenho um usuário cujo nome é john, então o link deve se parecer com isto-> support/content_editor/uploads/john .

A idéia principal é quando qualquer usuário está logado e navega na galeria de imagens. Eu quero levá-lo para sua própria galeria, que basicamente tem o nome de seu nome.

Quando ele visitará a galeria, o valor de $name no link virá do nome de login do usuário (da session). Agora o problema é como você provavelmente já entendeu que a colocação de $name no link acima está errada e é por isso que não está funcionando. Estou recebendo toda a URL> (support / content_editor / uploads / $ name) em vez de (support / content_editor / uploads / john)

Agora, você poderia me dizer como usar o $name neste $imagebaseurl = 'support/content_editor/uploads/$name';

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

ou

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

Observe que, se você usar aspas duplas, você também pode escrever o acima como:

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

É bom, no entanto, ter o hábito de usar {$...} em citações duplas em vez de apenas $... , por momentos em que você precisa inserir a variável em uma string onde não é óbvio para o PHP qual parte é a variável e qual parte é a string.

Se desejar o melhor desempenho, use a concatenação de Cadeia de caracteres com aspas simples.

Eu não poderia discordar mais com a publicação anterior.

Eu quase vou tão longe para chamar isso de má prática para usar

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

É mais sustentável, da minha experiência, utilizar um bom amigo meu conhecido como sprintf ();

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

Por quê? O primeiro pode parecer mais claro, mas o segundo é muito mais reutilizável. Eu recomendo utilizando sprintf sobre o php magic double quote nonesense que existe, literalmente, em nenhum outro idioma.

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

Esta é também a prática usada muito parecida com o C # e muitos outros idiomas.

Consulte também: https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx