Documentación offline PHP master

echo

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

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.

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 echo con 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 de echo en 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 echo permite 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