print_r()
A função print_r() do PHP exibe uma representação legível de uma variável, sendo muito útil para depuração de arrays e objetos.
Introdução
print_r() é uma função built-in do PHP que imprime uma representação legível por humanos de uma variável. Para escalares (strings, números, booleanos) ela simplesmente imprime o valor, mas seu real valor está com arrays e objetos: ela apresenta as chaves e valores como uma árvore com indentação, permitindo que você veja a estrutura de relance.
É uma das três funções de depuração mais utilizadas no PHP, ao lado de var_dump() e var_export(). Use print_r() quando quiser uma visão rápida e legível do que está dentro de uma variável.
Sintaxe
print_r(mixed $value, bool $return = false): string|true| Parâmetro | Descrição |
|---|---|
$value | A variável a ser exibida. Qualquer tipo — escalar, array ou objeto. |
$return | Opcional. Quando false (o padrão), a saída é impressa diretamente. Quando true, a saída é retornada como string em vez de ser impressa, permitindo capturá-la em uma variável. |
O valor de retorno depende de $return: com o padrão false, retorna true; com true, retorna a string formatada.
Imprimindo um array
print_r() exibe arrays aninhados como uma árvore com indentação, facilitando a leitura de dados em múltiplos níveis:
Cada chave aparece como [key] => value, e o array roles aninhado é indentado sob seu pai:
Array
(
[name] => Alice
[age] => 30
[roles] => Array
(
[0] => admin
[1] => editor
)
)Capturando a saída como string
Passe true como segundo argumento para retornar o texto formatado em vez de imprimi-lo. Isso é útil para escrever a estrutura em um arquivo de log, incorporá-la em uma mensagem de erro ou envolvê-la em HTML:
<?php
$data = ["x" => 1, "y" => 2];
$text = print_r($data, true); // captured, not printed
error_log($text); // e.g. send it to the log
echo strtoupper(substr($text, 0, 5)); // prints: ARRAY
?>Dica: envolva em <pre> para o navegador
Em uma página web, os navegadores colapsam a indentação e as quebras de linha que print_r() utiliza, fazendo com que a saída pareça uma linha contínua. Envolva-a em uma tag <pre> (ou capture com $return e exiba dentro de <pre>) para manter a formatação legível:
<?php
echo "<pre>";
print_r($person);
echo "</pre>";
?>print_r() vs. var_dump() vs. var_export()
Essas três funções inspecionam variáveis, mas atendem a necessidades diferentes:
print_r()— a mais legível. Ideal para uma verificação visual rápida da estrutura. Não exibe tipos de dados nem comprimentos de strings.var_dump()— exibe o tipo e tamanho de cada valor (int(30),string(5) "Alice") e pode imprimir várias variáveis de uma vez. Melhor quando o tipo importa (por exemplo, distinguir0,"0",falseenull).var_export()— gera código PHP válido que recria a variável. Ideal quando você quer um valor que possa ser colado de volta no código-fonte ou em cache.
Se você precisa apenas saber o tipo de uma variável, gettype() é mais direto.
Conclusão
print_r() é a ferramenta de inspeção mais amigável do PHP: ela imprime arrays e objetos como uma árvore limpa e indentada, fácil de examinar durante a depuração. Use o modo padrão para exibir uma variável diretamente na saída, passe true para capturar o resultado como string e envolva a chamada em <pre> ao visualizá-la no navegador. Quando você precisar de tipos e tamanhos, mude para var_dump(); quando precisar de código PHP reutilizável, use var_export().