Las cadenas de texto se pueden limitar por comillas dobles o simples. Si una cadena está delimitada por comillas dobles, en su interior puede haber cualquier número de comillas simples, y viceversa. Si en una cadena tiene que haber comillas simples y dobles, se pueden escribir como \' o \"
<?php print "<p>Esto es una comilla simple: '</p>"; ?> |
Esto es una comilla simple: ' |
<?php print '<p>Esto es una comilla doble: "</p>'; ?> |
Esto es una comilla doble: " |
<?php print "<p>Esto es una comilla simple: ' y esto una comilla doble: \"</p>"; ?> |
Esto es una comilla simple: ' y esto una comilla doble: " |
<?php print '<p>Esto es una comilla simple: \' y esto una comilla doble: "</p>'; ?> |
Esto es una comilla simple: ' y esto una comilla doble: " |
El código HTML también puede tener comillas simples o dobles:
<?php print "<p><strong style='color: red;'>Hola</strong></p>"; ?> |
Hola |
<?php print '<p><strong style="color: red;">Hola</strong></p>'; ?> |
Hola |
Aunque en los ejemplos anteriores las comillas simples o dobles son equivalentes, en otras situaciones no lo son. Por ejemplo, PHP no sustituye las variables que se encuentran dentro de cadenas delimitadas con comillas simples, mientras que sí que lo hace (pero no siempre) si se utilizan comillas dobles, como se ve en el siguiente ejemplo:
<?php $cadena = "Hola"; print "<p>La variable contiene el valor: $cadena</p>"; ?> |
La variable contiene el valor: Hola |
<?php $cadena = "Hola"; print '<p>La variable contiene el valor: $cadena</p>'; ?> |
La variable contiene el valor: $cadena |
Se pueden insertar saltos de línea en el código fuente de la página insertándolos directamente en el interior de las cadenas o mediante el carácter especial \n. Este salto de línea es ignorado por los navegadores, pero aumenta la legibilidad del código fuente.
Los ejemplos siguientes producen el mismo resultado en los navegadores (una lista de dos elementos), pero el código fuente es más o menos legible.
<?php print "<ul><li>Uno</li><li>Dos</li></ul>"; ?> |
<ul><li>Uno</li><li>Dos</li></ul> |
<?php print "<ul>\n <li>Uno</li>\n <li>Dos</li>\n</ul>"; ?> |
<ul> <li>Uno</li> <li>Dos</li> </ul> |
<?php print "<ul>"; print "<li>Uno</li>"; print "<li>Dos</li>"; print "</ul>"; ?> |
<ul><li>Uno</li><li>Dos</li></ul> |
<?php print "<ul> <li>Uno</li> <li>Dos</li> </ul>"; ?> |
<ul> <li>Uno</li> <li>Dos</li> </ul> |
El operador . (punto) permite concatenar dos o más cadenas.
<?php $cadena1 = "Pasa"; $cadena2 = "tiempos"; $cadena3 = $cadena1.$cadena2; print "<p>$cadena3</p>"; ?> |
<p>Pasatiempos</p> |
<?php $cadena1 = "Corre"; $cadena2 = "ve"; $cadena3 = "idile"; $cadena4 = $cadena1.$cadena2.$cadena3; print "<p>$cadena4</p>"; ?> |
<p>Correveidile</p> |
El operador . (punto) se puede utilizar en la instrucción print. En el ejemplo siguiente se concatenan una cadena, una variable y una cadena.
<?php $nombre = "Don Pepito"; print "<p>¡Hola, ".$nombre."! ¿Cómo está usted?</p>"; ?> |
<p>¡Hola, Don Pepito! ¿Cómo está usted?</p> |
En el ejemplo anterior, el uso del operador . (punto) era innecesario, ya que se puede obtener el mismo resultado sin utilizarlo:
<?php $nombre = "Don Pepito"; print "<p>¡Hola, $nombre! ¿Cómo está usted?</p>"; ?> |
<p>¡Hola, Don Pepito! ¿Cómo está usted?</p> |
Pero hay situaciones en las que es necesario concatenar cadenas. Por ejemplo, si la variable es una matriz de dos dimensiones, PHP no sustituye la variable por su valor dentro de una cadena, mientras que si que lo hace fuera de las comillas, como muestra el ejemplo siguiente:
<?php $nombre = "Don Pepito"; $saludo = Array( Array("Hola", "Buenas"), Array("Adios", "Abur")); print "<p>¡$saludo[0][0], $nombre! ¿Cómo está usted?</p>"; ?> |
<p>¡Array[0], Don Pepito! ¿Cómo está usted?</p> |
<?php $nombre = "Don Pepito"; $saludo = Array( Array("Hola", "Buenas"), Array("Adios", "Abur")); print "<p>¡".$saludo[0][0].", $nombre! ¿Cómo está usted?</p>"; ?> |
<p>¡Hola, Don Pepito! ¿Cómo está usted?</p> |
En el primer ejemplo, PHP genera la cadena "Array[0]" porque cuando PHP intenta sustituir la cadena "$saludo[0][0]" por su valor, en vez de coger toda la cadena coge únicamente la primera parte ($saludo[0]). Como $saludo[0] es una matriz de una dimensión, no puede escribir ningún valor y devuelve simplemente "Array". A continuación añade el [0] que quedaba y se obtiene la cadena "Array[0]".
Sin embargo en el segundo ejemplo, PHP sí que evalúa $cadena[0][0], que en este caso tiene el valor "Hola".
Si se quiere mostrar el resultado de operaciones matemáticas (sin utilizar variables auxiliares), es necesario efectuar las operaciones fuera de las cadenas. Incluso aunque no es siempre necesario, conviene escribir las operaciones entre paréntesis.
<?php $x = 3; $y = 4; print "<p>Suma: $x + $y = ".($x+$y)."</p>"; print "<p>Multiplicación: $x x $y = ".($x*$y)."</p>"; ?> |
<p>Suma: 3 + 4 = 7</p> <p>Multiplicación: 3 x 4 = 12</p> |