W3docs

print_r()

La funzione print_r() in PHP stampa una rappresentazione leggibile di una variabile, utile per il debug di array e oggetti.

Introduzione

print_r() è una funzione PHP integrata che stampa una rappresentazione leggibile di una variabile. Per i valori scalari (stringhe, numeri, booleani) stampa semplicemente il valore, ma il suo vero punto di forza sono array e oggetti: li visualizza come un albero indentato con chiavi e valori, permettendo di vedere la struttura a colpo d'occhio.

È una delle tre funzioni di debug fondamentali in PHP, insieme a var_dump() e var_export(). Usa print_r() quando vuoi un'analisi rapida e leggibile del contenuto di una variabile.

Sintassi

print_r(mixed $value, bool $return = false): string|true
ParametroDescrizione
$valueLa variabile da visualizzare. Qualsiasi tipo — scalare, array o oggetto.
$returnOpzionale. Quando è false (il valore predefinito), l'output viene stampato direttamente. Quando è true, l'output viene restituito come stringa invece di essere stampato, consentendo di catturarlo in una variabile.

Il valore restituito dipende da $return: con il valore predefinito false restituisce true; con true restituisce la stringa formattata.

Stampare un array

print_r() mostra gli array annidati come un albero indentato, rendendo facile leggere dati su più livelli:

php— editable, runs on the server

Ogni chiave appare come [key] => value, e l'array roles annidato è indentato sotto il suo elemento padre:

Array
(
    [name] => Alice
    [age] => 30
    [roles] => Array
        (
            [0] => admin
            [1] => editor
        )

)

Catturare l'output come stringa

Passa true come secondo argomento per restituire il testo formattato invece di stamparlo. Questo è utile per scrivere la struttura in un file di log, incorporarla in un messaggio di errore o racchiuderla in 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
?>

Suggerimento: racchiudila in <pre> per il browser

In una pagina web, i browser comprimono l'indentazione e le interruzioni di riga su cui print_r() fa affidamento, quindi l'output appare come un'unica riga continua. Racchiudilo in un tag <pre> (oppure catturalo con $return e mostralo dentro <pre>) per mantenere la formattazione leggibile:

<?php
echo "<pre>";
print_r($person);
echo "</pre>";
?>

Queste tre funzioni ispezionano le variabili, ma servono a scopi diversi:

  • print_r() — la più leggibile. Ideale per un controllo visivo rapido della struttura. Non mostra i tipi di dati né la lunghezza delle stringhe.
  • var_dump() — mostra il tipo e la dimensione di ogni valore (int(30), string(5) "Alice"), e può stampare più variabili contemporaneamente. Ideale quando il tipo è importante (ad es. per distinguere 0, "0", false e null).
  • var_export() — produce codice PHP valido che ricrea la variabile. Ideale quando si vuole un valore da incollare nel codice sorgente o da memorizzare in cache.

Se hai bisogno solo di conoscere il tipo di una singola variabile, gettype() è più diretto.

Conclusione

print_r() è il più intuitivo degli strumenti di ispezione di PHP: stampa array e oggetti come un albero pulito e indentato, facile da scansionare durante il debug. Usa la modalità predefinita per mostrare una variabile direttamente nell'output, passa true per catturare il risultato come stringa, e racchiudi la chiamata in <pre> quando la visualizzi nel browser. Quando hai bisogno anche dei tipi e delle dimensioni, passa a var_dump(); quando hai bisogno di codice PHP riutilizzabile, usa var_export().

Pratica

Pratica
Cosa fa la funzione print_r() in PHP?
Cosa fa la funzione print_r() in PHP?
Was this page helpful?