echo
En esta página
echo
Muestra una string
Descripción#
echo(string ...$expressions): void
```php
Muestra una o varias expresiones, sin espacios o nueva línea adicionales.
`echo` no es una función sino una construcción del lenguaje. Sus argumentos son una lista de expresiones que siguen la palabra clave `echo`, separados por comas, y no delimitados por paréntesis. A diferencia de otras construcciones del lenguaje, `echo` no tiene valor de retorno, por lo que no puede ser utilizada en el contexto de una expresión.
`echo` también dispone de una sintaxis corta, donde se puede hacer seguir inmediatamente la etiqueta PHP de apertura con un signo igual (`=`). Esta sintaxis está disponible incluso si la directiva de configuración [`short_open_tag`](#ini.short-open-tag) está desactivada.
Tengo =$foo?> foo.
La mayor diferencia con `print` es que `echo` acepta múltiples argumentos y no retorna ningún valor.
## Parámetros
`expressions`
Una o varias expresiones de string a mostrar, separadas por comas. Los valores que no son strings serán convertidos a strings, incluso si la directiva [`strict_types`](#language.types.declarations.strict) está activada.
## Valores devueltos
No se retorna ningún valor.
## Ejemplos
Ejemplo con `echo`
`echo` no es una expresión
```php
Notas#
[!NOTE] Como esto es una estructura del lenguaje, y no una función, no es posible llamarla con las funciones variables o argumentos nombrados.
[!NOTE] Rodear un solo argumento de
echocon paréntesis no generará un error de sintaxis, y produce una sintaxis similar a una llamada normal de función. Sin embargo, esto puede ser engañoso, ya que los paréntesis son en realidad parte de la expresión que se está mostrando, y no parte de la sintaxis deechoen sí mismo.Uso de paréntesis
```
<?php echo "hola", PHP_EOL; // muestra "hola"
echo("hola"), PHP_EOL; // también muestra "hola", ya que ("hola") es una expresión válida
echo(1 + 2) * 3, PHP_EOL; // muestra "9"; el paréntesis permite que 1+2 sea evaluado primero, luego 3*3 // echo ve el resultado de la expresión como un solo argumento
echo "hola", " mundo", PHP_EOL; // muestra "hola mundo"
echo("hola"), (" mundo"), PHP_EOL; // muestra "hola mundo"; los paréntesis son parte de cada expresión ?>
```
Expresión inválida
```
```
[!TIP] Pasar múltiples argumentos a
echopermite evitar complicaciones que aparecen debido a la precedencia de la operación de concatenación en PHP. Por ejemplo, el operador de concatenación tiene una precedencia mayor que el operador ternario, y anteriormente a PHP 8.0.0, tenía la misma precedencia que la suma y la resta:``` <?php // A continuación, la expresión 'Hola ' . isset($name) es evaluada primero, // y siempre es verdadera, por lo que el argumento para echo siempre es $name echo 'Hola ' . isset($name) ? $name : 'John Doe' . '!';
// El comportamiento deseado requiere paréntesis adicionales echo 'Hola ' . (isset($name) ? $name : 'John Doe') . '!';
// En PHP anterior a 8.0.0, lo siguiente muestra "2", en lugar de "Suma: 3" echo 'Suma: ' . 1 + 2;
// Nuevamente, añadir paréntesis asegura el orden de evaluación deseado echo 'Suma: ' . (1 + 2);
```
Si se proporcionan múltiples argumentos, entonces los paréntesis no serán necesarios para aumentar la precedencia, ya que cada expresión está separada:
``` <?php echo "Hola ", isset($name) ? $name : "John Doe", "!";
echo "Suma: ", 1 + 2;
```
Véase también#
print, printf, flush, Forma de especificar strings literales