W3docs

Entendendo os comandos echo e print do PHP

Aprenda a diferença entre echo e print no PHP, como exibir texto, variáveis e expressões, e quando usar cada um desses comandos.

Exibir texto é a primeira coisa que a maioria dos programas PHP faz, e o PHP oferece duas ferramentas para isso: echo e print. Elas parecem intercambiáveis e, para saída cotidiana, de fato são — mas não funcionam da mesma forma internamente. Ambas são construções de linguagem (não funções no sentido estrito), então você pode chamá-las com ou sem parênteses.

Este capítulo mostra como cada uma funciona, onde elas diferem e qual usar em cada situação. Se você é novo na exibição de valores, é útil primeiro ler sobre variáveis PHP e strings PHP, pois echo e print são a forma de exibi-los.

Comando echo do PHP

O comando echo exibe uma ou mais strings. Seu uso mais comum é imprimir um único trecho de texto:

Exemplo de echo em PHP

php— editable, runs on the server

echo não retorna um valor. A string acima vai diretamente para o buffer de saída e é enviada ao navegador (ou ao terminal, para scripts de linha de comando).

Exibindo variáveis e expressões

Você pode imprimir variáveis diretamente, ou construir uma string mais longa com o operador de concatenação .:

echo com concatenação de string em PHP

php— editable, runs on the server

Dentro de strings com aspas duplas, as variáveis são interpoladas automaticamente, então muitas vezes nem é necessário usar concatenação:

<?php

$num = 5;
echo "The value of num is: $num";   // The value of num is: 5
echo 'The value of num is: $num';   // The value of num is: $num

Aspas simples são tratadas literalmente — $num é impresso como está. Consulte strings PHP para as regras completas.

Passando múltiplos argumentos

Uma funcionalidade que print não possui: echo aceita vários argumentos separados por vírgulas e os imprime em ordem. Isso pode ser ligeiramente mais rápido do que concatenar, pois o PHP não precisa construir uma string grande primeiro:

<?php

echo "Red", " ", "Green", " ", "Blue", "\n";
// Output: Red Green Blue

Nota: a forma com vírgula só funciona quando você chama echo sem parênteses. echo("a", "b") é um erro de sintaxe.

A tag echo abreviada

Ao misturar PHP com HTML, <?= ... ?> é um atalho para <?php echo ... ?> — muito útil em templates:

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

Comando print do PHP

print também exibe texto, mas com uma diferença importante: ele sempre retorna o valor 1. Esse valor de retorno permite usar print dentro de expressões, onde echo causaria um erro de sintaxe:

Exemplo da função print em PHP

php— editable, runs on the server

Por retornar 1, print é às vezes usado em expressões condicionais como $ok or print "failed";. Na prática, isso é raro — a maioria do código simplesmente o usa como echo.

Assim como echo, print lida com variáveis e expressões:

print com concatenação de string em PHP

php— editable, runs on the server

O único detalhe a lembrar: print aceita exatamente um argumento. Você não pode escrever print "a", "b";.

Comparação entre echo e print

Funcionalidadeechoprint
Retorna um valorNãoSempre retorna 1
Utilizável em uma expressãoNãoSim ($x = print "hi";)
Múltiplos argumentosSim (echo $a, $b;)Não — apenas um argumento
VelocidadeMarginalmente mais rápidoMarginalmente mais lento

Algumas conclusões práticas:

  • A diferença de velocidade é insignificante para aplicações reais — é uma micro-otimização que você quase nunca notará. Escolha com base na legibilidade, não na performance.
  • Use echo para saída normal. É a escolha convencional e suporta múltiplos argumentos.
  • Use print apenas quando realmente precisar do seu valor de retorno dentro de uma expressão.

Conclusão

echo e print são construções de linguagem para enviar texto para a saída. Use echo por padrão — é a escolha idiomática e pode receber múltiplos argumentos — e use print quando precisar especificamente de um valor de retorno. Para aprofundar, veja variáveis PHP, strings PHP e tipos de dados PHP.

Prática

Prática
What is the difference between echo and print in PHP?
What is the difference between echo and print in PHP?
Was this page helpful?