Los strings, la concatenación y el escape de caracteres - Curso de PHP y MySQL - Capítulo 7

¿Qué son los strings de PHP?

Los strings son otro tipo de dato de PHP que admite texto (números, letras y símbolos).

Los strings son conocidos también como cadenas de caracteres.

Podemos diferenciar este tipo de dato de otros, entre otras cosas, porque siempre tienen que ir entre comillas. Comillas dobles " " o comillas simples ' '.

Código PHP

$texto1 = "Este string tiene comillas dobles.";
$texto2 = 'Este string tiene comillas simples.';

Hay otras dos formas de escribir strings que no veremos todavía.

Un string puede ser muy grande, ya que tienen un tamaño máximo de hasta 2 GB. ¡Mucho texto!
Cada caracter ocupa un byte, lo que nos deja almacenar hasta 2.147.483.648 caracteres.

¿Qué es la concatenación?

Pasemos a un tema sencillo, pero de suma importancia. La concatenación.

La concatenación es la acción de unir dos strings. Así de simple.

Código PHP

$lenguage = 'PHP';
$frase1 = 'Estoy aprendiendo';
$frase2 = 'en www.programacionfacil.org';

echo $frase1.$lenguage.$frase2;

Resultado en el navegador

Estoy aprendiendoPHPen www.programacionfacil.org

¡Vaya! Se han unido los strings de las variables, pero se queda todo sin espacios. La solución, añade espacios en los strings.

Código PHP

$lenguage = 'PHP';
$frase1 = 'Estoy aprendiendo ';
$frase2 = ' en www.programacionfacil.org';

echo $frase1.$lenguage.$frase2;

Resultado en el navegador

Estoy aprendiendo PHP en www.programacionfacil.org

El símbolo para pegar, unir, juntar o como quieras llamarlo, dos strings es el punto .. Algo que puede que te desconcierte un poco si has programado en otros lenguajes de programación, ya que normalmente, el símbolo de concatenación es el de adición +.

Esta concatenación la puedes hacer también en variables, no solo en un echo.

El escape de caracteres en PHP

Podemos utilizar el escape de caracteres para mostrar literalmente ciertos símbolos. Por ejemplo, si ponemos un string con comillas dobles y queremos mostrar unas comillas dobles literalmente dentro de él, no podemos hacerlo así:

Código PHP

echo "Las siglas de HTML significan "HyperText Markup language"";

Resultado en el navegador

Parse error: syntax error, unexpected identifier "HyperText", expecting ","
or ";" in C:\xampp\htdocs\pruebas\test.php on line 2

Al detectar la comilla doble antes de la H de HyperText, le hemos indicado a PHP que ahí termina el string y por lo tanto, no es correcto lo que viene a continuación.

Para solucionar esto, podemos utilizar dentro de las comillas dobles, las comillas simples.

Código PHP

echo "Las siglas de HTML significan 'HyperText Markup language'.";

Resultado en el navegador

Las siglas de HTML significan 'HyperText Markup language'.

Pero, ¿Y si lo que queremos es mostrar comillas dobles en lugar de simples dentro del texto?

Solo tienes que cambiar las comillas que encierran el string de dobles a simples y dentro, ya puedes utilizar las dobles sin problemas.

Código PHP

echo 'Las siglas de HTML significan "HyperText Markup language".';

Resultado en el navegador

Las siglas de HTML significan "HyperText Markup language".

Podemos también utilizar el escape de caracteres para evitar tener que jugar con las comillas. Con el símbolo \ podemos escapar ciertos caracteres.

Fíjate en el siguiente ejemplo, como añado unas comillas dobles junto con la barra invertida (backslash) \".

Código PHP

echo "Las siglas de HTML significan \"HyperText Markup language\".";

Resultado en el navegador

Las siglas de HTML significan "HyperText Markup language".

El escape de caracteres no funciona con las comillas simples englobando el string, estas lo que hacen es mostrar todo el contenido literal, de modo, que nos va a escribir esto \" literalmente:

Código PHP

echo 'Las siglas de HTML significan \"HyperText Markup language\".';

Resultado en el navegador

Las siglas de HTML significan \"HyperText Markup language\".

Se pueden hacer muchas cosas con el escape de caracteres, no obstante, ya es suficiente en esta parte del curso.