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";eecho("Hi");ambos funcionam — mas note queecho("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.
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:
| Recurso | echo | print |
|---|---|---|
| Múltiplos argumentos | Sim (separados por vírgula) | Não (apenas um) |
| Valor de retorno | Nenhum | Sempre retorna 1 |
| Utilizável em expressões | Não | Sim (ex.: $ok = print "Hi";) |
| Velocidade | Marginalmente mais rápido | Marginalmente 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 —echonã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_EOLvs"\n". Use a constantePHP_EOLquando precisar da quebra de linha correta para o sistema operacional atual (por exemplo, ao escrever no console em vez do navegador).