Texto

Comillas, puntos y llaves

Marco González Luengo

Tabla de contenidos
  1. Juntar texto: el punto
  2. Meter variables dentro del texto
  3. Comillas dobles y simples no son lo mismo
  4. Texto de varias líneas
  5. Caracteres especiales

En PHP, el texto (los strings) se escribe entre comillas, igual que en Python. Las diferencias están en cómo se juntan pedazos de texto y en qué comillas usas.

Juntar texto: el punto

Para concatenar se usa el operador ., no el +:

<?php
$var = "Juan";

echo "Hola, " . $var . PHP_EOL;

El + es solo para sumar. Si le pasas texto que no es número, PHP reclama:

<?php
echo "5" + "3", PHP_EOL;  // 8: son números escritos como texto
echo "a" + "b", PHP_EOL;  // TypeError

Meter variables dentro del texto

Con comillas dobles, las variables se reemplazan por su valor. Esto se llama interpolación, y es lo más parecido a los f-strings de Python:

<?php
$var = "Juan";

echo "Hola, " . $var . PHP_EOL;  // concatenación
echo "Hola, {$var}", PHP_EOL;    // interpolación

Las llaves en {$var} no siempre son obligatorias, pero conviene usarlas siempre: dejan claro dónde empieza y termina la variable.

Comillas dobles y simples no son lo mismo

Con comillas simples, el texto va tal cual: no se reemplazan variables ni se interpretan cosas como \n.

<?php
$nombre = "Ana";

echo 'Hola, {$nombre}\n';  // literal, tal cual
echo PHP_EOL;
echo "Hola, {$nombre}\n";  // con interpolación y salto de línea

Regla práctica: comillas dobles cuando hay variables o saltos de línea; simples cuando el texto es fijo.

Texto de varias líneas

Un string entre comillas dobles puede ocupar varias líneas, y la interpolación funciona igual:

<?php
$var = "Juan";

echo "Buenas noches,
Este es un texto con múltiples líneas.

Un saludo para {$var} que está en el bar.";

Para textos largos también existe la sintaxis heredoc, pero con esto basta por ahora.

Caracteres especiales

Dentro de comillas dobles, la barra invertida \ escapa caracteres: \n es un salto de línea, \" una comilla, y \$ un signo peso de verdad (no el comienzo de una variable):

<?php
foreach (range(1, 10) as $n) {
    echo "\${$n} ";
}

Sigue con Decisiones y ciclos.