print_r()
La fonction print_r() est une fonction intégrée à PHP qui affiche une représentation lisible d'une variable. Très utilisée pour le débogage.
Introduction
print_r() est une fonction PHP intégrée qui affiche une représentation lisible par l'humain d'une variable. Pour les scalaires (chaînes, nombres, booléens), elle affiche simplement la valeur, mais son vrai intérêt réside dans les tableaux et objets : elle présente les clés et les valeurs sous forme d'arborescence indentée, ce qui permet de visualiser la structure en un coup d'œil.
C'est l'une des trois fonctions de débogage incontournables de PHP, aux côtés de var_dump() et de var_export(). Utilisez print_r() lorsque vous souhaitez inspecter rapidement et lisiblement le contenu d'une variable.
Syntaxe
print_r(mixed $value, bool $return = false): string|true| Paramètre | Description |
|---|---|
$value | La variable à afficher. Tout type — scalaire, tableau ou objet. |
$return | Facultatif. Lorsque false (valeur par défaut), la sortie est affichée directement. Lorsque true, la sortie est retournée sous forme de chaîne au lieu d'être affichée, ce qui permet de la capturer dans une variable. |
La valeur de retour dépend de $return : avec la valeur par défaut false, elle retourne true ; avec true, elle retourne la chaîne formatée.
Afficher un tableau
print_r() présente les tableaux imbriqués sous forme d'arborescence indentée, ce qui facilite la lecture des données à plusieurs niveaux :
Chaque clé apparaît sous la forme [clé] => valeur, et le tableau roles imbriqué est indenté sous son parent :
Array
(
[name] => Alice
[age] => 30
[roles] => Array
(
[0] => admin
[1] => editor
)
)Capturer la sortie sous forme de chaîne
Passez true comme second argument pour retourner le texte formaté au lieu de l'afficher. Cela est pratique pour écrire la structure dans un fichier journal, l'intégrer dans un message d'erreur ou l'envelopper dans du 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
?>Conseil : enveloppez dans <pre> pour le navigateur
Dans une page web, les navigateurs réduisent l'indentation et les sauts de ligne sur lesquels repose print_r(), ce qui donne une sortie sur une seule ligne. Enveloppez-la dans une balise <pre> (ou capturez-la avec $return et affichez-la à l'intérieur de <pre>) pour conserver une mise en forme lisible :
<?php
echo "<pre>";
print_r($person);
echo "</pre>";
?>print_r() vs. var_dump() vs. var_export()
Ces trois fonctions permettent toutes d'inspecter des variables, mais elles répondent à des besoins différents :
print_r()— la plus lisible. Idéale pour un examen rapide de la structure à l'œil humain. Elle n'affiche pas les types de données ni les longueurs des chaînes.var_dump()— affiche le type et la taille de chaque valeur (int(30),string(5) "Alice"), et peut afficher plusieurs variables à la fois. Idéale lorsque le type est important (par exemple pour distinguer0,"0",falseetnull).var_export()— génère du code PHP valide qui recrée la variable. Idéale lorsque vous souhaitez une valeur que vous pouvez coller dans le source ou mettre en cache.
Si vous avez seulement besoin de connaître le type d'une variable, gettype() est plus direct.
Conclusion
print_r() est l'outil d'inspection le plus convivial de PHP : il affiche les tableaux et les objets sous forme d'arborescence propre et indentée, facile à parcourir lors du débogage. Utilisez le mode par défaut pour afficher directement une variable dans la sortie, passez true pour capturer le résultat sous forme de chaîne, et enveloppez l'appel dans <pre> lorsque vous le visualisez dans un navigateur. Lorsque vous avez également besoin des types et des tailles, passez à var_dump() ; lorsque vous avez besoin de code PHP réutilisable, utilisez var_export().