W3docs

echo

A palavra-chave "echo" em PHP é usada para exibir uma ou mais strings. Explore sua sintaxe e uso neste artigo.

A instrução echo do PHP

echo é a forma mais comum de enviar saída de um script PHP para o navegador (ou para o console). É uma construção de linguagem, não uma função verdadeira, por isso você frequentemente a verá usada sem parênteses. Esta página aborda sua sintaxe, como ela difere de print, a forma abreviada <?= ?> e as armadilhas que pegam os iniciantes de surpresa.

Se você é novo em exibir dados em PHP, também é útil ler PHP echo e print para uma comparação lado a lado e variáveis PHP para entender os valores que você irá imprimir.

Sintaxe

echo expression1, expression2, ...;
  • Os argumentos são separados por vírgulas.
  • Como echo é uma construção de linguagem, os parênteses são opcionais. echo "Hi"; e echo("Hi"); ambos funcionam — mas note que echo("a", "b"); é um erro de sintaxe, pois os parênteses envolvem apenas um único argumento.

Saída básica

<?php

echo "Hello World!";        // Hello World!
echo "\n";                   // newline
echo "Hello", " ", "World!"; // Hello World!

Passar vários argumentos separados por vírgulas é marginalmente mais rápido do que construir uma string com o operador de concatenação (.), porque o PHP não precisa criar a string concatenada antes.

Exibindo variáveis

<?php

$name = "John";
$age  = 30;

// Concatenation with the . operator
echo "My name is " . $name . " and I am " . $age . " years old.";

Dentro de strings com aspas duplas, o PHP também interpola variáveis diretamente, o que costuma ser mais limpo do que a concatenação:

<?php

$name = "John";
echo "Hello, $name!";        // Hello, John!
echo "Hello, {$name}san!";   // Hello, Johnsan! (braces clarify the variable name)

Strings com aspas simples não interpolam — echo 'Hello, $name'; imprime o literal Hello, $name. Consulte strings PHP para as regras completas.

"Experimente Você Mesmo" não está disponível para este exemplo.

A tag echo abreviada <?= ?>

Quando você mistura PHP com HTML, <?= ?> é uma abreviação de <?php echo ?>. Ela está habilitada por padrão no PHP e é a forma idiomática de imprimir um único valor dentro de um template:

<p>Welcome, <?= $username ?>!</p>

<!-- equivalent to: -->
<p>Welcome, <?php echo $username; ?>!</p>

echo vs print

Ambos produzem saída, mas há diferenças:

Recursoechoprint
Múltiplos argumentosSim (separados por vírgula)Não (apenas um)
Valor de retornoNenhumSempre retorna 1
Utilizável em expressõesNãoSim (ex.: $ok = print "Hi";)
VelocidadeMarginalmente mais rápidoMarginalmente mais lento

Como print retorna 1, ele pode aparecer dentro de uma expressão; echo não pode. Consulte A instrução print do PHP para mais detalhes.

Armadilhas comuns

  • Nenhum valor é retornado. $x = echo "Hi"; é um erro fatal — echo não pode ser atribuído nem usado em expressões.
  • Parênteses com vírgulas falham. echo("a", "b"); é inválido; remova os parênteses: echo "a", "b";.
  • Escapar a entrada do usuário. Exibir dados não confiáveis diretamente em HTML abre brechas para XSS. Passe-os por htmlspecialchars() antes: echo htmlspecialchars($comment);.
  • PHP_EOL vs "\n". Use a constante PHP_EOL quando precisar da quebra de linha correta para o sistema operacional atual (por exemplo, ao escrever no console em vez do navegador).

Prática

Prática
Qual é a forma correta de usar a função echo em PHP?
Qual é a forma correta de usar a função echo em PHP?
Was this page helpful?