PHP: utilizzo di una variabile all'interno di virgolette doppie

si prega di controllare il seguente codice.

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

$imagebaseurl è una variabile che contiene un link alla mia cartella di immagini (upload) e all'interno della cartella ho alcune altre cartelle che prendono il nome dal mio nome utente. per esempio: ho un utente il cui nome è john, quindi il link dovrebbe apparire come questo-> support/content_editor/uploads/john .

L'idea principale è quando un utente ha effettuato l'accesso e sfoglia la sua galleria di immagini. Voglio portrlo nella sua galleria che in pratica prende il nome dal suo nome.

Quando visiterà la galleria, il valore di $name nel collegamento verrà dal nome di accesso dell'utente (dalla session). Ora il problema è che probabilmente hai già capito che il posizionamento di $name nel link sopra è sbagliato ed è per questo che non funziona. Ricevo l'integer URL> (supporto / content_editor / uploads / $ name) anziché (supporto / content_editor / uploads / john)

Ora potresti dirmi come usare il $name in questo $imagebaseurl = 'support/content_editor/uploads/$name';

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

o

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

Nota che se usi le virgolette doppie, puoi anche scrivere quanto sopra:

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

È bene prendere l'abitudine di usare {$...} tra virgolette anziché solo $... , per le volte in cui è necessario inserire la variabile in una string in cui non è ovvio per PHP quale parte è la variabile e quale parte è la string.

Se si desidera la migliore prestazione, utilizzare la concatenazione di stringhe con virgolette singole.

Non potrei essere in disaccordo di più con il post precedente.

Andrei quasi fino a chiamarlo ctriggers pratica da usare

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

È più mantenibile, dalla mia esperienza, utilizzare un mio buon amico conosciuto come sprintf ();

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

Perché? Il primo può sembrare più chiaro, ma il secondo è molto più riutilizzabile. Raccommand di utilizzare sprintf sulla double citazione di php magic double che esiste, letteralmente, in nessun'altra lingua.

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

Questa è anche la pratica usata molto simile a C # e molte altre lingue.

Vedi anche: https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx