Una cadena en PHP es texto entre comillas simples o dobles. Une cadenas con el operador punto, $first . ' ' . $last, o pon una variable directamente entre comillas dobles: "Hello, $name".
El punto une dos valores cualesquiera en una cadena nueva. Los números se convierten solos, así que "Total: " . 42 es "Total: 42".
Comillas simples vs dobles
Las comillas dobles hacen dos cosas más: sustituyen las variables por sus valores y convierten secuencias de escape como \n (salto de línea) y \t (tabulador) en los caracteres que representan. Las comillas simples imprimen el texto exactamente como está escrito, salvo \' y \\.
Usa comillas simples para texto fijo y comillas dobles cuando quieras una variable o un \n dentro. La diferencia de velocidad entre ellas es demasiado pequeña para medirla, así que elige la que haga la línea más fácil de leer.
Concatenar cadenas con . y .=
.= añade al final de una variable de cadena. Es la forma habitual de ir construyendo texto en un bucle, por ejemplo un trozo de HTML. Ejecuta este bloque y el editor abre la pestaña Página, que muestra la lista renderizada.
La precedencia importa cuando mezclas . con aritmética. Desde PHP 8, + y - tienen más prioridad que ., así que "Sum: " . 2 + 3 es "Sum: 5". Los paréntesis lo dejan claro para quien lea después: "Sum: " . (2 + 3).
Variables, arrays y objetos dentro de una cadena
Una variable simple funciona sola dentro de comillas dobles. Para un elemento de array, una cadena de propiedades de un objeto o una llamada a un método, envuelve la expresión entre llaves. Las llaves también separan una variable de las letras que la siguen.
Los métodos funcionan dentro de las llaves; las funciones normales, no: la última línea imprime las llaves y el nombre de la función alrededor del valor de $fruit. Llama a la función antes de la cadena, o usa sprintf cuando la cadena tenga muchos valores.
Cambiar mayúsculas y minúsculas: strtoupper, strtolower, ucfirst, ucwords
Estas funciones trabajan byte a byte y solo cambian las letras de la a a la z. Para texto con tildes, cirílico o griego, usa las versiones multibyte, que entienden UTF-8:
Leer caracteres sueltos y repetir cadenas
Una cadena se puede indexar como un array. Los desplazamientos negativos cuentan desde el final. Para contar caracteres, consulta strlen.
Error frecuente: + en lugar de .
En JavaScript, + une cadenas. En PHP, + es siempre aritmético: las cadenas numéricas se suman como números, y el texto que no es un número lanza un error.
Si ves un número donde esperabas texto unido, o Unsupported operand types: string + string, busca un + que debería ser un ..
Preguntas frecuentes
¿Cómo se concatenan cadenas en PHP?
Usa el operador punto: $full = $first . ' ' . $last;. Para añadir al final de una cadena existente, usa .=: $html .= '<li>Item</li>';. El operador + es para números, y "Hello" + "World" lanza un TypeError en PHP 8.
¿Cuál es la diferencia entre comillas simples y dobles en PHP?
Las comillas dobles sustituyen variables y secuencias de escape: "Hi $name\n" imprime el valor de $name y un salto de línea. Las comillas simples imprimen casi todo tal cual: 'Hi $name\n' imprime el signo de dólar, el nombre y una barra invertida seguida de n. Dentro de comillas simples, solo \' y \\ son secuencias de escape.
¿Cómo meto un valor de un array dentro de una cadena en PHP?
Envuélvelo entre llaves: "Hello, {$user['name']}". Lo mismo funciona con propiedades de objetos y llamadas a métodos: "{$user->getName()}". Sin llaves, "$user[name]" (sin comillas alrededor de la clave) también funciona con una clave simple.
¿Cómo paso una cadena a mayúsculas o minúsculas en PHP?
strtoupper('php') devuelve PHP, strtolower('PHP') devuelve php, ucfirst('hello') pone en mayúscula la primera letra y ucwords('hello world') pone en mayúscula cada palabra. Para texto con tildes o letras no latinas, usa mb_strtoupper() y mb_strtolower().