A palavra-chave "print" é usada em PHP para exibir uma string no navegador ou em outro fluxo de saída. Explore a sintaxe e o uso.
O Construto print do PHP
print envia uma string para qualquer fluxo de saída em que o PHP esteja gravando — geralmente o navegador ao executar uma página web, ou o terminal ao executar um script pela linha de comando. Apesar de parecer uma função, print é um construto de linguagem: está integrado à própria linguagem, aceita exatamente um argumento e sempre retorna o inteiro 1.
Esse único valor de retorno é o que diferencia print de echo e o torna utilizável dentro de expressões maiores. Este capítulo cobre a sintaxe, como print difere de echo, quando o valor de retorno é importante e as formas mais comuns de uso.
Sintaxe
print "Hello, world!";Como print é um construto e não uma função, os parênteses são opcionais. As duas formas são válidas e se comportam de maneira idêntica:
print "Hello, world!"; // without parentheses
print("Hello, world!"); // with parenthesesOs parênteses simplesmente agrupam o argumento; eles não transformam print em uma chamada de função. Ele ainda aceita apenas um argumento — não é possível passar uma lista separada por vírgulas como echo permite.
Exibindo variáveis e expressões
print avalia seu argumento primeiro, portanto você pode passar uma variável, uma string concatenada ou qualquer expressão que resolva para um valor do tipo string. Variáveis dentro de strings com aspas duplas são interpoladas automaticamente:
<?php
$name = "John";
// Interpolation inside a double-quoted string
print "Hello, $name!" . PHP_EOL; // Hello, John!
// Concatenation with the . operator
print "Sum: " . (1 + 2) . PHP_EOL; // Sum: 3PHP_EOL é o caractere de nova linha da plataforma — útil em scripts de linha de comando para que cada instrução seja exibida em sua própria linha. (Consulte Operadores PHP para o operador de concatenação . e Variáveis PHP para as regras de interpolação.)
Usando o valor de retorno
Cada chamada a print retorna 1. Por si só isso parece inútil, mas permite que print apareça onde um valor é esperado — por exemplo, dentro de uma atribuição ou de uma expressão lógica:
<?php
// Assigning the result (always 1)
$result = print "Success" . PHP_EOL;
echo $result . PHP_EOL; // 1
// Using print inside a ternary expression
$loggedIn = false;
$loggedIn ? print "Welcome back" : print "Please log in";echo não pode ser usado dessa forma: $x = echo "hi"; é um erro de sintaxe, pois echo não retorna nada. Se você precisar de saída como parte de uma expressão, use print.
print vs echo
Os dois são praticamente intercambiáveis para saída simples. As diferenças são pequenas, mas vale conhecê-las:
| Recurso | print | echo |
|---|---|---|
| Valor de retorno | sempre 1 | nenhum (não pode ser usado em expressões) |
| Número de argumentos | exatamente um | um ou mais (separados por vírgula) |
| Velocidade relativa | ligeiramente mais lento | ligeiramente mais rápido |
Na prática, ambos são rápidos o suficiente para que a diferença de velocidade nunca importe. Escolha echo quando quiser imprimir vários valores de uma vez; escolha print quando precisar de um valor de retorno. Para uma comparação mais detalhada, consulte PHP echo vs print.
Exibindo HTML
Assim como echo, print simplesmente escreve qualquer string que receber, portanto a marcação HTML passa diretamente para a página:
<?php
$title = "Welcome";
print "<h1>$title</h1>";
print "<p>This paragraph was generated with <code>print</code>.</p>";O navegador renderiza o resultado como HTML comum. Lembre-se de escapar qualquer dado fornecido pelo usuário (por exemplo com htmlspecialchars()) antes de exibi-lo, para evitar cross-site scripting.
Resumo
printé um construto de linguagem que exibe uma string e sempre retorna1.- Os parênteses são opcionais —
print "x"eprint("x")são equivalentes. - Seu valor de retorno permite que seja usado dentro de expressões e atribuições, ao contrário de
echo. - Use
echopara múltiplos valores; useprintquando precisar do valor de retorno. - A saída (incluindo HTML) é escrita literalmente, por isso escape dados não confiáveis primeiro.