# Cadenas 1

## Comillas simples y dobles

Las cadenas de texto se pueden delimitar 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>";
    ?>
| <p>Esto es una comilla simple: '</p>
    <?php
    print '<p>Esto es una comilla doble: "</p>';
    ?>
| <p>Esto es una comilla doble: "</p>
    <?php
    print "<p>Esto es una comilla simple: ' y esto una comilla doble: \"</p>";
    ?>>
| <p>Esto es una comilla simple: ' y esto una comilla doble: "</p>
    <?php
    print '<p>Esto es una comilla simple: \' y esto una comilla doble: "</p>';
    ?>
| <p>Esto es una comilla simple: ' y esto una comilla doble: "</p>

El código HTML también puede tener comillas simples o dobles:

    <?php
    print "<p><strong style='color: red;'>Hola</strong></p>";
    ?>
| <p><strong style='color: red;'>Hola</strong></p>
    <?php
    print '<p><strong style="color: red;">Hola</strong></p>';
    ?>
| <p><strong style="color: red;">Hola</strong></p>

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>";
    ?>>
| <p>La variable contiene el valor: Hola</p>
    <?php
    $cadena = "Hola";
    print '<p>La variable contiene el valor: $cadena</p>';
    ?>
| <p>La variable contiene el valor: $cadena</p>

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>";
    ?>
| <pre>Esto está en dos líneas</pre>
    <?php
    print '<pre>Esto está en\ndos líneas.</pre>';
    ?>
| <pre>Esto está en\ndos líneas</pre>

Volver al principio de la página

## Saltos de línea en el código fuente

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 legible en los dos últimos casos.

    <?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>

Volver al principio de la página

## Concatenar cadenas

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>

Volver al principio de la página

## Variables en cadenas

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: cinco mil</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>

En html/css a veces es necesario juntar números y carácteres, como en el ejemplo siguiente en el que se establece el tamaño del párrafo en 30px:

    <?php
    print "<p style=\"font-size: 30px\" >Texto grande</p>\n";
    ?>
| <p style="font-size: 30px" >Texto grande</p>

Si el tamaño está almacenado en una variable, no se puede juntar la variable con los caracteres ya que se interpretaría como una variable que no está definida y toma el valor vacío:

    <?php
    $x = 30;
    print "<p style=\"font-size: $xpx\" >Texto grande</p>\n";
    ?>
| <p style="font-size: " >Texto grande</p>

... pero se pueden utilizar llaves o sacar la variable de la cadena:

    <?php
    $x = 30;
    print "<p style=\"font-size: {$x}px\" >Texto grande</p>\n";
    ?>
| <p style="font-size: 30px" >Texto grande</p>
    <?php
    $x = 30;
    print "<p style=\"font-size: ".$x."px\" >Texto grande</p>\n";
    ?>
| <p style="font-size: 30px" >Texto grande</p>

Volver al principio de la página

Esta obra está bajo una licencia de Creative Commons.