Cadenas 1Las 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 |
PHP tampoco sustiituye algunos caracteres especiales (por ejemplo, el salto de línea \n) dentro de las comillas simples, como se ve en el siguiente ejemplo:
| <?php print "<pre>Esto está en\ndos líneas.</pre>"; ?> |
Esto está en dos líneas |
| <?php print '<pre>Esto está en\ndos líneas.</pre>'; ?> |
Esto está en\ndos líneas |
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>"; print "<li>Uno</li>"; print "<li>Dos</li>"; print "</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> <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> |
Nota: En el ejemplo anterior, se puede obtener el mismo resultado sin utilizar el operador . (punto):
| <?php $nombre = "Don Pepito"; print "<p>¡Hola, $nombre! ¿Cómo está usted?</p>"; ?> |
<p>¡Hola, Don Pepito! ¿Cómo está usted?</p> |
La forma de insertar variables dentro de cadenas depende del tipo de variable utilizado.
En el caso de números, cadenas o matrices de una dimensión, las variables se puede insertar directamente:
| <?php $numero = 5000; $texto = "cinco mil"; $seEscribe = Array("junto", "separado"); print "<p>El número $numero se escribe $seEscribe[1]: $texto</p>"; ?> |
<p>En número 5000 se escribe separado</p> |
En el caso de matrices de dos o más dimensiones, las variables no se puede insertar directamente:
| <?php $nombre = "Don Pepito"; $saludos = Array( Array("Hola", "Hello"), Array("Adios", "Goodbye")); print "<p>¡$saludos[0][0], $nombre! ¿Cómo está usted?</p>"; ?> |
<p>¡Array[0], Don Pepito! ¿Cómo está usted?</p> |
Este resultado se obtiene porque PHP no sustituye la variable $saludos[0][0] por su valor, sino que sustituye únicamente la primera parte ($saludos[0]). Como $saludos[0] es una matriz de una dimensión, no puede escribir ningún valor y devuelve simplemente "Array". A continuación, PHP añade el [0] que quedaba y se obtiene la cadena "Array[0]".
Una solución es sacar la matriz de la cadena:
| <?php $nombre = "Don Pepito"; $saludos = Array( Array("Hola", "Hello"), Array("Adios", "Goodbye")); print "<p>¡".$saludos[0][0].", $nombre! ¿Cómo está usted?</p>"; ?> |
<p>¡Hola, Don Pepito! ¿Cómo está usted?</p> |
Otra solución es utilizar llaves ({ }) rodeando la variable:
| <?php $nombre = "Don Pepito"; $saludos = Array( Array("Hola", "Hello"), Array("Adios", "Goodbye")); print "<p>¡{$saludos[0][0]}, $nombre! ¿Cómo está usted?</p>"; ?> |
<p>¡Hola, Don Pepito! ¿Cómo está usted?</p> |
Si se quiere mostrar el resultado de operaciones matemáticas (sin utilizar variables auxiliares), es necesario efectuar las operaciones fuera de las cadenas. En algunos casos no es necesario escribir las operaciones entre paréntesis pero, si se escriben entre siempre paréntesis no hace falta preocuparse por cuándo hacen falta y cuándo no.
| <?php $x = 3; $y = 4; print "<p>Suma: $x + $y = ".($x+$y)."</p>\n"; print "<p>Multiplicación: $x x $y = ".($x*$y)."</p>"; ?> |
<p>Suma: 3 + 4 = 7</p> <p>Multiplicación: 3 x 4 = 12</p> |
Si se quiere escribir el nombre de una variable, es decir, para que PHP no sustituya la variable por su valor, hay que escribir una contrabarra (\) antes de la variable.
| <?php $x = 3; print "<p>La variable \$x vale $x</p>\n"; ?> |
<p>La variable $x vale 3</p> |