2012-05-09 34 views
15

, compruebe el siguiente código.PHP: Usando una variable dentro de una comillas dobles

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

El $imagebaseurl es una variable que se contiene un enlace a mi carpeta de imágenes (archivos) y dentro de la carpeta que tiene algunas otras carpetas que se nombran después de mi nombre de los usuarios. por ejemplo: tengo un usuario cuyo nombre es John, por lo que el enlace debería verse así->support/content_editor/uploads/john.

La idea principal es cuando cualquier usuario inicia sesión y navega por su galería de imágenes Quiero llevarlo a su propia galería que, básicamente, lleva el nombre de su nombre.

Cuando visite la galería, el valor de $name en el enlace provendrá del nombre de usuario del usuario (de la sesión). Ahora el problema es que probablemente ya haya entendido que la colocación de $name en el enlace de arriba es incorrecta y es por eso que no está funcionando. Me estoy haciendo todo este URL> (soporte/content_editor/uploads/$ nombre) en lugar de (soporte/content_editor/uploads/john)

Ahora podría por favor decirme cómo utilizar el $name en este $imagebaseurl = 'support/content_editor/uploads/$name';

+2

Use comillas dobles en lugar de los simples o utilizar la solución de Radu. –

+2

(''' es una comilla simple, no una comilla doble ...) –

+1

http://php.net/string – hakre

Respuesta

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

o

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

Tenga en cuenta que si utiliza comillas dobles, también se puede escribir lo anterior como:

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

Aunque es bueno tener el hábito de usar {$...} entre comillas dobles en lugar de solo $..., para los momentos en los que necesita insertar la variable en una cadena donde no es obvio para PHP qué parte es la variable y qué parte es la cadena .

Si desea el mejor rendimiento, utilice la concatenación de cadenas con comillas simples.

+2

Solo una nota al margen: se recomienda no usar comillas dobles con variables dentro de ellas.Es horrible para la legibilidad del código y la depuración y PHP también es un poco más rápido si se utilizan comillas simples (como el primer ejemplo de la respuesta de Radu). – kingmaple

+1

http://php.net/sprintf – hakre

+0

+1. Nota al margen: preferible ir por la mejor solución. – RSM

0

No podría estar más en desacuerdo con la publicación anterior.

casi me gustaría ir tan lejos a lo llamo mala práctica utilizar

$varname = 'EXAMPLE'; 

$fulltext = "This is an $varname"; 

Su más fácil de mantener, desde mi experiencia, utilizar un buen amigo mío conocido como sprintf();

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

echo EXAMPLE; 

¿Por qué? El primero puede parecer más claro, pero el segundo es mucho más reutilizable. Recomiendo utilizar sprintf sobre la nomenclatura doble de php magic que existe, literalmente, en NINGÚN otro idioma.

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

Ésta es también la práctica utilizada muy similar a C#, y muchos otros idiomas.

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

Cuestiones relacionadas