# echo

(PHP 4, PHP 5, PHP 7, PHP 8)

echo — Muestra una o más cadenas

### Descripción

echo(string `$arg1`, string `$...` = ?): void

Muestra todos los parámetros. No se pospone ningua nueva línea adicional.

`echo` no es realmente una función (es una construcción del lenguaje), por lo que no se requiere el uso de paréntesis con él. `echo` (a diferencia de otras construcciones del lenguaje) no se comporta como una función, es decir no siempre se puede usar en el contexto de una función. Además, si se quiere pasar más de un parámetro a `echo`, éstos no deben estar entre paréntesis.

`echo` también posee una sintaxis abreviada, donde se puede poner el símbolo igual justo después de la etiqueta de apertura de PHP. Antes de PHP 5.4.0, este tipo de sintaxis abreviada únicamente funciona con la opción de configuración short_open_tag activada.

`I have <?=$foo?> foo.`

### Parámetros

`arg1`

  El parámetro a mostrar.

`...`

### Valores devueltos

No devuelve ningún valor.

### Ejemplos

Ejemplo #1 Ejemplos de `echo`

`<?php
echo "Hola mundo";
echo "Esto abarca
multiple líneas. Los saltos de línea también
se mostrarán";
echo "Esto abarca\nmúltiples líneas. Los saltos de línea también\nse mostrarán.";
echo "Para escapar caracteres se hace \"así\".";
// Se pueden usar variables dentro de una sentencia echo
$foo = "foobar";
$bar = "barbaz";
echo "foo es $foo"; // foo es foobar
// También se pueden usar arrays
$baz = array("valor" => "foo");
echo "Esto es {$baz['valor']} !"; // Esto es foo !
// Si se utilizan comillas simples, se mostrará el nombre de la variable, no su valor
echo 'foo es $foo'; // foo es $foo
// Si no usan otros caracteres, se puede utilizar echo para mostrar el valor de las variables.
echo $foo; // foobar
echo $foo,$bar; // foobarbarbaz
// Las cadenas pueden ser pasadas individualmente como varios argumentos o
// concatenadas como un único argumento
echo 'Esta ', 'cadena ', 'está ', 'hecha ', 'con múltiple parámetros.', chr(10);
echo 'Esta ' . 'cadena ' . 'está ' . 'hecha ' . 'con concatenación.' . "\n";
echo <<<END
Aquí se utiliza la sintaxis de "here document" para mostrar
múltiples líneas con interpolación de $variable. Nótese
que el finalizador de here document debe aparecer en una
línea con solamente un punto y coma. ¡Nada de espacios extra!
END;
// Ya que echo no se comporta como una función, el siguiente código no es válido.
($variable) ? echo 'true' : echo 'false';
// Sin embargo, el siguiente código funcionará:
($variable) ? print 'true' : print 'false'; // print también es una construcción, pero
// se comporta como una función, por lo que
// puede usarse en este contexto.
echo $variable ? 'true': 'false'; // dando la vuelta a la declaración
?>`

### Notas

> Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.

Sugerencia

Un beneficio de pasar varios argumentos sobre la concatenación en echo es la precedencia del operador punto en PHP. Si se pasan varios argumentos, no serán necesarios paréntesis para forzar la precedencia:

`<?php
echo "Sum: ", 1 + 2;
echo "Hello ", isset($name) ? $name : "John Doe", "!";`

Con la concatenación, el operador punto tiene mayor precedencia que los operadores de adición y ternario, por lo que se deben utilizar paréntesis para un correcto funcionamiento:

`<?php
echo 'Sum: ' . (1 + 2);
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';`

### Ver también

- print - Mostrar una cadena
- printf() - Imprimir una cadena con formato
- flush() - Vaciar el búfer de salida del sistema
- Sintaxis de Heredoc