print()
Artigo sobre a função print() do PHP, usada para exibir uma string, com sintaxe, diferenças em relação ao echo e exemplos práticos.
print é um construto de linguagem do PHP que exibe uma string. É uma das formas mais comuns de enviar texto ao navegador ou terminal, ao lado do echo. Esta página cobre a sintaxe do print, a característica que o diferencia do echo (seu valor de retorno), o comportamento dos parênteses e os problemas a serem observados.
Um construto de linguagem — e não uma função — significa que print faz parte da própria gramática da linguagem. Na prática, é por isso que você pode escrever print "x" sem parênteses, da mesma forma que com echo.
Sintaxe
int print(string $expression)print aceita um único argumento, $expression, que é convertido para string e escrito na saída. Ele sempre retorna 1, portanto pode ser usado em expressões maiores onde echo não pode.
Como os parênteses são opcionais, todos estes exemplos são válidos:
print "Hello, World!";
print("Hello, World!");
print "Sum is " . (2 + 3);Um exemplo básico
A saída é:
Hello, World!print vs. echo
print e echo parecem quase idênticos, mas há duas diferenças reais:
echo | print | |
|---|---|---|
| Valor de retorno | nenhum (não retorna nada) | sempre 1 |
| Múltiplos argumentos | sim — echo $a, $b; | não — apenas um argumento |
| Velocidade | ligeiramente mais rápido | ligeiramente mais lento |
As diferenças são pequenas, portanto a maioria dos projetos escolhe um e mantém a consistência. Use echo quando quiser exibir vários valores de uma vez; recorra ao print apenas quando precisar de um valor de retorno dentro de uma expressão. Para uma comparação lado a lado, consulte echo e print em PHP.
<?php
// echo can take several arguments separated by commas
echo "a", "b", "c"; // abc
// print cannot — this is a syntax error:
// print "a", "b";
?>Usando o valor de retorno
Como print retorna 1, ele pode aparecer onde uma expressão é esperada. Isso é ocasionalmente útil em uma condicional ou ternário, onde echo não compilaria:
<?php
$loggedIn = true;
// Ternary: the print runs and evaluates to 1, but we only care about the side effect.
$loggedIn
? print("Welcome back!\n")
: print("Please sign in.\n");
?>Saída:
Welcome back!Esse padrão é raro em código real — um if/else simples com echo é mais claro — mas explica por que print retorna um valor.
Exibindo variáveis e HTML
print exibe qualquer string que você construir, incluindo HTML. Interpolar variáveis dentro de uma string com aspas duplas é a forma idiomática de misturar texto e dados:
<?php
$user = "Ada";
print "<p>Hello, $user!</p>\n";
print 'Single quotes do NOT interpolate: $user' . "\n";
?>Saída:
<p>Hello, Ada!</p>
Single quotes do NOT interpolate: $userObserve a diferença: aspas duplas ("...") expandem $user, aspas simples ('...') exibem literalmente.
Problemas comuns
printnão é para arrays ou objetos. Passar um array exibe a palavra literalArraye gera um aviso. Para inspecionar dados estruturados, useprint_r()ouvar_dump().- A saída não escapa nada.
printescreve texto bruto. Ao exibir entrada do usuário em HTML, envolva-a emhtmlspecialchars()para evitar XSS. - Para saída formatada, prefira
printf. Se precisar de preenchimento, formatação de números ou marcadores,printf()esprintf()são as ferramentas certas.
Resumo
print exibe uma única string, sempre retorna 1 e aceita parênteses opcionais. É intercambiável com echo para saídas do dia a dia; o único motivo para preferi-lo é quando você precisa do seu valor de retorno dentro de uma expressão. Para depurar arrays e objetos, use print_r() ou var_dump(); para strings formatadas, use printf().