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| Parametro | Descrizione |
|---|---|
$value | La variabile da visualizzare. Qualsiasi tipo — scalare, array o oggetto. |
$return | Opzionale. 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:
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>";
?>print_r() vs. var_dump() vs. var_export()
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 distinguere0,"0",falseenull).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().