2011-07-12 23 views

Respuesta

2

No. Las variables (y los caracteres especiales) solo se expanden en cadenas delimitadas con comillas dobles. Si desea incluir una variable en una cadena de comilla simple delimitado, hay que concatenar en su lugar:

echo 'I love my '.$variable.'.'; 

También podría escapar de las comillas dobles de su HTML si usted prefiere utilizar cadenas delimitadas por comillas dobles :

echo "<a href=\"$url\">$text</a>"; 

Consulte el manual de PHP on strings, especialmente la parte de string parsing, para más información.

18

Debe utilizar:

echo 'I love my ' . $variable . '.'; 

Este método añade la variable de la cadena.

O usted podría utilizar:

echo "I love my $variable."; 

Aviso las comillas dobles utilizado aquí!

0

No. ' no analizará las variables. Utilizas

echo 'I love my '.$variable.'.'; 

o

echo "I love my {$variable}. And I have \" some characters escaped"; 
0
no

dentro de la cadena, pero puede salir de la cuerda y concatenar la variable en.

echo 'I love my '.$variable.'.'; 

La otra opción sería sólo para escapar de la doble citas.

echo "I love my \"$variable\"."; 

O simplemente entra y sale de las variables de eco (aunque feo).

I love my <?php echo $variable; ?>. 
With short tags enabled, I love my <?=$variable?>. 

Por último, existe el formato heredoc que permite comillas simples y dobles junto con las variables.

echo <<<HTML 
I love my $variable. '"... 
HTML; 
6

Si hay mucho texto, eche un vistazo a la sintaxis Heredoc.

$var = <<<EOT 
<div style="">Some 'text' {$variable}</div> 
EOT; 
0

Tomado de php.net: "Nota: A diferencia de las sintaxis de comillas dobles y heredoc, variables y secuencias de escape para caracteres especiales no serán expandidas cuando ocurren en cadenas entre comillas sencillas."

Así que la respuesta es no, no puedes.Pero puede hacerlo así:

echo 'I love my' . $variable . '.'; 

Será más limpio de esta manera.

3

El documentation dice:

Nota: A diferencia de losdouble-quoted y heredoc sintaxis, variables y secuencias de escape para caracteres especiales no ser ampliado cuando se producen en cadenas entre comillas sencillas.

Así que la respuesta es no, no de esta manera.

La solución es simple:

¿No echo HTML.

Mientras no esté creando como vistas parciales o cosas , no hay razón para hacer eco de HTML. Insertar PHP en HTML en lugar:

<div class="foo"> 
    <span><?php echo $value; ?></span> 
</div> 

Los beneficios son:

  • no tiene que recordar escapar de las cotizaciones.
  • Más fácil de mantener el código HTML.

†: En este caso heredoc[docs] es la alternativa menos peor.

-5

O la forma más sencilla:

awk "\$1 < $variable" 
+2

¿Cómo responde esto a la pregunta? – Werner

-1

uso de la fuga cantar cita para rodear la cadena de texto como:

variable='my dog' 

echo \''I love ' $variable\' 

=> 'I love my dog'

+0

Ese código arroja un error de análisis. – Quentin

0

Junto las soluciones mencionadas por otros usuarios, como la concatenación de cadenas, puede usar marcadores de posición de la siguiente manera;

Tenga en cuenta que% s es para la cadena.

$variable = 'what ever'; 
printf('The $variable is %s', $variable); 
Cuestiones relacionadas