Strings en PHP: Una Guía en Profundidad
Aprende todo sobre los strings en PHP: comillas, concatenación, funciones integradas, secuencias de escape, Heredoc y Nowdoc con ejemplos prácticos.
Un string es una secuencia de caracteres utilizada para almacenar y manipular texto: nombres, mensajes, HTML, JSON, contenido de archivos y mucho más. Los strings son uno de los tipos de datos fundamentales de PHP, y casi todos los programas PHP los utilizan. Esta guía cubre cómo crear strings, la diferencia crucial entre comillas simples y dobles, la concatenación, el acceso a caracteres individuales, las funciones integradas más útiles, las secuencias de escape y las sintaxis multilínea Heredoc y Nowdoc, con ejemplos ejecutables a lo largo del texto.
¿Qué es un String en PHP?
Un string es texto envuelto en comillas y almacenado en una variable. PHP te ofrece cuatro formas de escribir uno: comillas simples, comillas dobles, Heredoc y Nowdoc. Los dos estilos de comillas son los que usarás con mayor frecuencia:
<?php
$single = 'Hello World';
$double = "Hello World";
echo $single; // Hello World
echo "\n";
echo $double; // Hello WorldLos strings no tienen un límite de longitud fijo más allá de la memoria disponible, por lo que un string puede contener un solo carácter o un documento completo.
Comillas Simples vs. Comillas Dobles
Esta es la distinción más importante que debes aprender desde el principio, porque elegir el estilo de comillas incorrecto es una fuente frecuente de errores. Las comillas dobles procesan secuencias de escape e interpolan variables; las comillas simples tratan casi todo de forma literal.
<?php
$name = 'Alice';
echo "Hello $name\n"; // Hello Alice (variable + newline parsed)
echo 'Hello $name\n'; // Hello $name\n (printed literally)Cuando la variable está en contacto con otros caracteres, envuélvela entre llaves para que PHP sepa dónde termina el nombre:
<?php
$item = 'book';
echo "I bought 3 {$item}s\n"; // I bought 3 booksLas comillas simples son marginalmente más rápidas y seguras cuando no necesitas interpolación; úsalas para texto fijo. Usa comillas dobles (o Heredoc) cuando necesites incrustar variables o secuencias de escape.
Concatenación de Strings
Unir strings en uno se llama concatenación. PHP usa el punto (.) como operador, y .= añade contenido a un string existente:
<?php
$first = 'Hello';
$last = 'World';
$greeting = $first . ' ' . $last;
echo $greeting; // Hello World
$greeting .= '!';
echo "\n" . $greeting; // Hello World!Ten en cuenta que PHP usa . para la concatenación, no +. Usar + con dos strings intenta una suma numérica y casi nunca es lo que se desea.
Acceso a Caracteres
Un string se comporta como un array de caracteres. Puedes leer cualquier carácter por su índice de base cero usando corchetes:
<?php
$word = 'PHP';
echo $word[0]; // P
echo $word[2]; // P
echo $word[-1]; // P (negative index counts from the end)Para obtener la longitud del string, usa strlen:
<?php
echo strlen('Hello World'); // 11 (the space counts)Funciones de String más Comunes
PHP incluye una amplia biblioteca de funciones para strings. Estas son las que usarás con más frecuencia, cada una con enlace a su capítulo dedicado:
| Función | Propósito |
|---|---|
strlen | Longitud de un string (en bytes) |
strpos | Posición de la primera aparición de una subcadena |
str_replace | Reemplaza todas las apariciones de una subcadena |
strtoupper / strtolower | Cambiar mayúsculas/minúsculas |
substr | Extraer una parte de un string |
trim | Eliminar espacios en blanco de ambos extremos |
explode / implode | Convertir entre strings y arrays |
sprintf | Formatear un string a partir de una plantilla |
Un recorrido rápido:
<?php
$text = ' The quick brown fox ';
echo strlen($text); // 23
echo "\n";
echo strpos($text, 'quick'); // 6
echo "\n";
echo str_replace('quick', 'slow', trim($text)); // The slow brown fox
echo "\n";
echo strtoupper(trim($text)); // THE QUICK BROWN FOX
echo "\n";
echo substr(trim($text), 0, 3); // Thesprintf construye un string a partir de una plantilla, lo cual es útil para números y relleno:
<?php
$price = 9.5;
echo sprintf('Total: $%.2f', $price); // Total: $9.50Trabajo con Unicode
Las funciones estándar como strlen y strpos cuentan bytes, no caracteres. Para texto con letras acentuadas, emojis o scripts no latinos, usa los equivalentes multibyte mb_* de la extensión mbstring para que los caracteres multibyte se cuenten correctamente:
<?php
$word = 'café';
echo strlen($word); // 5 (é is 2 bytes in UTF-8)
echo "\n";
echo mb_strlen($word); // 4 (correct character count)Secuencias de Escape
Dentro de strings con comillas dobles, una barra invertida inicia una secuencia de escape, una forma de escribir caracteres difíciles de teclear o que de otro modo serían procesados. Las más comunes:
| Secuencia | Significado |
|---|---|
\n | Nueva línea |
\t | Tabulador |
\" | Comilla doble literal |
\\ | Barra invertida literal |
\$ | Signo de dólar literal (suprime la interpolación) |
<?php
echo "Line 1\nLine 2"; // prints on two lines
echo "\n";
echo "Price: \$5"; // Price: $5
echo "\n";
echo "She said \"hello\""; // She said "hello"Los strings con comillas simples solo reconocen \' (una comilla literal) y \\; todo lo demás, incluido \n, se imprime tal cual.
Heredoc y Nowdoc
Cuando necesitas un string largo y multilínea, Heredoc y Nowdoc son más limpios que escapar saltos de línea manualmente.
Heredoc se comporta como un string con comillas dobles: las variables se interpolan y las secuencias de escape funcionan. Se abre con <<< seguido de un identificador, y se cierra con ese mismo identificador en su propia línea:
<?php
$name = 'Alice';
$message = <<<EOT
Dear $name,
Welcome aboard!
EOT;
echo $message;
// Dear Alice,
// Welcome aboard!Nowdoc se comporta como un string con comillas simples: sin interpolación ni procesamiento de escape. La única diferencia sintáctica es que el identificador de apertura va entre comillas simples:
<?php
$name = 'Alice';
$message = <<<'EOT'
Dear $name,
Welcome aboard!
EOT;
echo $message;
// Dear $name,
// Welcome aboard!Usa Heredoc para salida con plantillas (correos electrónicos, bloques HTML) y Nowdoc cuando quieras el texto exactamente como está escrito.
Resumen
Los strings en PHP son la base del trabajo con texto. Los puntos esenciales a recordar:
- Usa comillas simples para texto literal y comillas dobles (o Heredoc) cuando necesites interpolación de variables o secuencias de escape.
- Concatena con el operador
., no con+. - Recurre a funciones integradas como
strlen,substr,str_replaceyexplodeen lugar de reinventarlas. - Usa las funciones
mb_*siempre que el texto pueda contener caracteres no ASCII.
A continuación, aprende a mostrar strings y otros valores con echo y print, o explora los números y los arrays en PHP.