Menu

Cadenas en PHP: comillas, concatenación e interpolación

Une cadenas en PHP con el operador punto ("Hello, " . $name) o pon las variables directamente entre comillas dobles ("Hello, $name"). Las comillas simples imprimen el texto tal cual. Aprende la concatenación, .=, la interpolación de arrays y objetos y el cambio de mayúsculas con strtoupper, strtolower, ucfirst y ucwords.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

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().

Ilustración de los lenguajes de programación de Coddy

Aprende a programar con Coddy

COMENZAR