echo
La palabra clave "echo" en PHP se usa para mostrar una o más cadenas. En este artículo exploramos su sintaxis y su uso detallado.
La sentencia echo de PHP
echo es la forma más común de enviar salida desde un script PHP al navegador (o a la consola). Es una construcción del lenguaje, no una función propiamente dicha, razón por la cual se suele utilizar sin paréntesis. Esta página explica su sintaxis, en qué se diferencia de print, la etiqueta abreviada <?= ?> y los errores comunes que confunden a los principiantes.
Si eres nuevo en la salida de datos en PHP, también te resultará útil leer PHP echo y print para una comparación lado a lado, y variables PHP para entender los valores que imprimirás.
Sintaxis
echo expression1, expression2, ...;- Los argumentos se separan con comas.
- Dado que
echoes una construcción del lenguaje, los paréntesis son opcionales.echo "Hi";yecho("Hi");funcionan ambas — pero ten en cuenta queecho("a", "b");es un error de sintaxis, ya que los paréntesis solo envuelven un único argumento.
Salida básica
<?php
echo "Hello World!"; // Hello World!
echo "\n"; // newline
echo "Hello", " ", "World!"; // Hello World!Pasar varios argumentos separados por comas es marginalmente más rápido que construir una sola string con el operador de concatenación (.), porque PHP no necesita crear primero la string unida.
Impresión de variables
<?php
$name = "John";
$age = 30;
// Concatenation with the . operator
echo "My name is " . $name . " and I am " . $age . " years old.";Dentro de las strings con comillas dobles, PHP también interpola variables directamente, lo que suele ser más limpio que la concatenación:
<?php
$name = "John";
echo "Hello, $name!"; // Hello, John!
echo "Hello, {$name}san!"; // Hello, Johnsan! (braces clarify the variable name)Las strings con comillas simples no interpolán — echo 'Hello, $name'; imprime el literal Hello, $name. Consulta strings PHP para las reglas completas.
La etiqueta echo corta <?= ?>
Cuando mezclas PHP con HTML, <?= ?> es una abreviación de <?php echo ?>. Está habilitada por defecto en PHP y es la forma idiomática de imprimir un único valor dentro de una plantilla:
<p>Welcome, <?= $username ?>!</p>
<!-- equivalent to: -->
<p>Welcome, <?php echo $username; ?>!</p>echo vs print
Ambas producen salida, pero existen diferencias:
| Característica | echo | print |
|---|---|---|
| Múltiples argumentos | Sí (separados por comas) | No (solo uno) |
| Valor de retorno | Ninguno | Siempre devuelve 1 |
| Usable en expresiones | No | Sí (p. ej. $ok = print "Hi";) |
| Velocidad | Marginalmente más rápido | Marginalmente más lento |
Dado que print devuelve 1, puede aparecer dentro de una expresión; echo no puede. Consulta La sentencia print de PHP para más detalles.
Errores comunes
- No se devuelve ningún valor.
$x = echo "Hi";es un error fatal —echono puede asignarse ni usarse en expresiones. - Los paréntesis con comas fallan.
echo("a", "b");es inválido; elimina los paréntesis:echo "a", "b";. - Escapar la entrada del usuario. Imprimir datos no confiables directamente en HTML invita a ataques XSS. Pásalos primero por
htmlspecialchars():echo htmlspecialchars($comment);. PHP_EOLvs"\n". Usa la constantePHP_EOLcuando necesites el salto de línea correcto para el sistema operativo actual (por ejemplo, al escribir en la consola en lugar de en un navegador).