W3docs

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âmetroDescrição
$valueA variável a ser exibida. Qualquer tipo — escalar, array ou objeto.
$returnOpcional. 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:

php— editable, runs on the server

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>";
?>

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, distinguir 0, "0", false e null).
  • 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().

Prática

Prática
O que a função print_r() faz no PHP?
O que a função print_r() faz no PHP?
Was this page helpful?