2010-08-01 48 views
7

¿Alguien puede explicar cómo hacer que este código funcione?¿Cómo uso comillas simples dentro de comillas simples?

echo '<div id="panel1-under">Welcome <?php echo "$_SESSION['username']"; ?></div>'; 

He intentado quitar las comillas simples (echo '<div id="panel1-under">Welcome <?php echo "$_SESSION[username]"; ?></div>';), pero no funciona.

Respuesta

9
echo "<div id=\"panel1-under\">Welcome ".$_SESSION['username']."</div>"; 

o

echo '<div id="panel1-under">Welcome '.$_SESSION['username'].'</div>'; 

rápida Explica:

  • Usted no tiene que abrir de nuevo las etiquetas en el interior un eco String ("...")
  • Lo que he hecho aquí es pasar la cadena "Bienvenido" concatenado a $ _SESSION [ 'username'] y "" (lo que el. operador hace)
  • PHP es aún lo suficientemente inteligente como para detectar las variables dentro de una cadena PHP y evaluarlos:

    $ nombredevariable = "Andrew";

    echo "Hello $ variablename, welcome";

=> Hola Andrés, bienvenidos

Más informaciones: PHP.net - echo

+1

PHP reemplazará las variables dentro de una cadena PHP SI la cadena está entre comillas dobles o Heredoc. Esta es una distinción importante. – JAL

+0

+1 ¡Está tan en el ejemplo pero no lo he mencionado explícitamente! thx – Kami

+1

'echo"

Welcome {$_SESSION['username']}
";' ¿También debería funcionar? – Svish

6

Necesita concatenar sus cadenas & variables.

echo '<div id="panel1-under">Welcome ' . $_SESSION['username'] . '</div>'; 
5

La expansión de la variable no funciona dentro de comillas simples. Usted puede hacer cualquiera:

echo "<div id=\"panel1-under\">Welcome {$_SESSION['username']}</div>"; 

o

echo '<div id="panel1-under">Welcome ' . $_SESSION['username'] . '</div>'; 
+0

fresco! +1. No sabía que puedes usar arreglos asociativos como en el primer ejemplo, sospechaba si funcionaría y lo probé yo mismo y realmente funciona, aunque probablemente nunca lo use de esa manera ... – zz1433

+1

La primera ejemplo mostrará una advertencia como "constante indefinida 'nombre de usuario', asumiendo 'nombre de usuario'". Lo mejor es usar la sintaxis del paréntesis: 'echo"

Welcome {$_SESSION['username']}
"; – JAL

+0

@Alex JL, ¡Uy, corregido! – jasonbar

5

entre comillas simples, nombres de las variables no son interpretadas como que están dentro de las comillas dobles. Si desea utilizar una comilla aquí, tendrá que utilizar la concatenación de cadenas operador, .:

echo '<div id="panel1-under">Welcome <?php echo "'.$_SESSION['username'].'"; ?></div>'; 

Por cierto: la respuesta a la pregunta del título es que con el fin de utilizar una comilla simple literal dentro de una cadena entre comillas simples, que escapar la comilla simple usando una barra invertida:

echo 'Here is a single-quote: \''; 
3

en términos generales, a utilizar la comilla simple dentro de una cadena que utiliza la comilla simple como delimitador, solo escapa de la comilla simple dentro de la línea g

echo 'That\'s all, folks'; 

Sin embargo, no está claro cuál es el propósito de su código.

echo '<div id="panel1-under">Welcome <?php echo "$_SESSION['username']"; ?></div>'; 

Como ya está utilizando el código PHP, <?php echo no es necesario. Si sólo está tratando de salida el contenido de una variable de sesión, entonces se puede utilizar

echo '<div id="panel1-under">Welcome ' . $_SESSION['username'] . '</div>'; 
0

utilizar el siguiente código

$data = $session['user']; 
echo "a big string and $data thats simple" 
+1

¿Y cómo responde la pregunta 'Cómo usar comillas simples dentro de comillas simples?'? –

Cuestiones relacionadas