2011-04-26 20 views
8

Quiero insertar una variable dentro del EOT pero no funciona (soy nuevo en php, quizás por eso). Este código es parte de un script, cuando hago eco de $username solo, muestra el nombre real, pero cuando lo pongo dentro de EOT, aparece el texto sin formato, no el nombre real ...PHP Insertar variable dentro de EOT

¿Qué estoy haciendo mal?

$username=getUsername($ID); 

echo <<<'EOT' 

Some HTML code goes here 

Hello $username, welcome back! 

Some HTML code goes here 

EOT; 

Respuesta

21

Debe dejar de lado las comillas simples aquí:

echo <<<'EOT' 

Esto denota la variante 'nowdoc', que no interpolar variables.

pero se necesita la sintaxis original de "heredoc" sin comillas:

echo <<<EOT 
+0

Sí, está trabajando ahora .. Muchas gracias por explicar los jeroglíficos para mí :) –

+4

Ah, por cierto, que no lo hacen * tiene que * nombrarlo 'EOT'. Puede usar cualquier cadena de delimitador que desee. También es común usar 'echo <<< END' o' echo <<< HTML' (con 'HTML;' después del bloque de texto). – mario

+0

Seleccione esto como la solución, para la cual está claro. Gracias. – Homer6

7
$variable = 'text'; 
echo <<<EOT 
Some {$variable} here 
EOT; 
+0

¿Podría agregar algunas palabras que expliquen por qué cree que esta es una solución? – Trinimon

+2

Sucede que encuentro el mismo problema y así es como lo resolví. Poner {} alrededor de las variables sustituye los nombres var por sus valores. – s4nch3z