Position actuelle: Accueil> Derniers articles> Comment comprendre et maîtriser l'utilisation de base de la fonction print_r? Expliquez en détail!

Comment comprendre et maîtriser l'utilisation de base de la fonction print_r? Expliquez en détail!

M66 2025-07-18

Dans la programmation PHP, la fonction print_r () est un outil de débogage très courant. Il peut être utilisé pour produire les valeurs et les structures des variables, en particulier pour l'impression des tableaux et des objets. Pour les débutants, il est très important de comprendre l'utilisation de la fonction print_r () . Cet article présentera son utilisation de base, ses scénarios d'application courants et comment l'utiliser plus efficacement.

1. Présentation de la fonction print_r ()

print_r () est une fonction intégrée en PHP qui diffuse des informations variables lisibles par l'homme, généralement utilisées pour le débogage. Sa fonction principale est d'imprimer le contenu et la structure des variables, en particulier l'effet d'affichage des tableaux et des objets.

2. Syntaxe de print_r ()

 <span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$variable</span></span><span>, </span><span><span class="hljs-variable">$return</span></span><span>);
</span></span>
  • $ variable : la variable qui doit être sortie, généralement un tableau, un objet ou un autre type de variable.

  • $ return (facultatif): Ce paramètre est une valeur booléenne qui détermine s'il faut renvoyer le résultat. Si true , print_r () renvoie le résultat de sortie en tant que chaîne; Si false (par défaut), le résultat est sorti directement.

3. Exemple de sortie print_r ()

  1. Sortir des variables normales

 <span><span><span class="hljs-variable">$var</span></span><span> = </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$var</span></span><span>);
</span></span>

Sortir:

 <span><span>Hello, World!
</span></span>
  1. Tableau de sortie

 <span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; </span><span><span class="hljs-number">4</span></span><span>
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>

Comme indiqué ci-dessus, print_r () sortira les touches et les valeurs du tableau, ce qui permet aux développeurs de visualiser la structure du tableau.

  1. Tableau d'association de sortie

 <span><span><span class="hljs-variable">$assocArray</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-string">"name"</span></span><span> =&gt; </span><span><span class="hljs-string">"John"</span></span><span>, </span><span><span class="hljs-string">"age"</span></span><span> =&gt; </span><span><span class="hljs-number">30</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$assocArray</span></span><span>);
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">name</span></span><span>] =&gt; John
    [</span><span><span class="hljs-meta">age</span></span><span>] =&gt; </span><span><span class="hljs-number">30</span></span><span>
)
</span></span>
  1. Tableau multidimensionnel de sortie

 <span><span><span class="hljs-variable">$multiArray</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(
    </span><span><span class="hljs-string">"fruits"</span></span><span> =&gt; </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry"</span></span><span>),
    </span><span><span class="hljs-string">"vegetables"</span></span><span> =&gt; </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-string">"carrot"</span></span><span>, </span><span><span class="hljs-string">"potato"</span></span><span>)
);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$multiArray</span></span><span>);
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">fruits</span></span><span>] =&gt; Array
        (
            [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple
            [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; banana
            [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry
        )
    [</span><span><span class="hljs-meta">vegetables</span></span><span>] =&gt; Array
        (
            [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; carrot
            [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; potato
        )
)
</span></span>

D'après l'exemple ci-dessus, nous pouvons voir que print_r () sortira récursivement le contenu d'un tableau multidimensionnel, montrant la structure imbriquée du tableau.

4. La valeur de retour de print_r ()

Le deuxième paramètre de print_r () $ return est par défaut à False , ce qui signifie que le contenu est sorti directement. Si vous souhaitez renvoyer la sortie en tant que chaîne au lieu de l'imprimer directement, vous pouvez définir le deuxième paramètre sur true .

 <span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry"</span></span><span>);
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Returned output: \n"</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span>;
</span></span>

Sortir:

 <span><span>Returned output: 
Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry
)
</span></span>

5. La différence entre print_r () et var_dump ()

Bien que les deux print_r () et var_dump () puissent être utilisés pour déboguer les variables de sortie, leurs formulaires de sortie sont différents:

  • print_r () est plus concis et affiche le contenu des tableaux et des objets sous une forme lisible par l'homme.

  • var_dump () fournit des informations plus détaillées, y compris le type de données, la longueur, etc., ce qui convient à une inspection stricte des types de données pendant le débogage.

Par exemple:

 <span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; </span><span><span class="hljs-number">3</span></span><span>
)
</span></span>

Et la sortie de var_dump () est:

 <span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span></span>

Sortir:

 <span><span>array(</span><span><span class="hljs-number">3</span></span><span>) {
  [</span><span><span class="hljs-meta">0</span></span><span>] =&gt;
  </span><span><span class="hljs-built_in">int</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>)
  [</span><span><span class="hljs-meta">1</span></span><span>] =&gt;
  </span><span><span class="hljs-built_in">int</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>)
  [</span><span><span class="hljs-meta">2</span></span><span>] =&gt;
  </span><span><span class="hljs-built_in">int</span></span><span>(</span><span><span class="hljs-number">3</span></span><span>)
}
</span></span>

À partir de cela, nous pouvons voir que var_dump () publie le type et la valeur de données de chaque élément, tandis que print_r () sortit le contenu du tableau de manière plus concise.

6. Scénarios d'application courants de print_r ()

  1. Débogage du tableau et de la structure des objets

print_r () est idéal pour visualiser rapidement la structure d'un tableau ou d'un objet, en particulier lors du débogage des structures de données complexes. Il est plus facile à lire et à comprendre que l'écho traditionnel ou var_dump () .

  1. Sortir la structure des données JSON

Lors du traitement des données JSON, l'utilisation de print_r () peut nous aider à afficher des tableaux ou des objets analysés.

 <span><span><span class="hljs-variable">$jsonData</span></span><span> = </span><span><span class="hljs-string">'{"name": "John", "age": 30}'</span></span><span>;
</span><span><span class="hljs-variable">$decodedData</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$jsonData</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$decodedData</span></span><span>);
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">name</span></span><span>] =&gt; John
    [</span><span><span class="hljs-meta">age</span></span><span>] =&gt; </span><span><span class="hljs-number">30</span></span><span>
)
</span></span>
  1. Imprimer le message ou obtenir des données de demande

Lors de la réception de données de formulaire, print_r () peut vous aider à vérifier si les données passées sont correctes.

 <span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>);
</span></span>

7. Résumé

print_r () est une fonction PHP très pratique, particulièrement adaptée au débogage pendant la phase de développement. Il peut clairement afficher la structure des tableaux et des objets, aidant les développeurs à mieux comprendre le contenu des données. En utilisant de manière flexible print_r () , vous pouvez rapidement localiser les problèmes et améliorer votre code.

J'espère que cet article peut vous aider à mieux comprendre et maîtriser l'utilisation de base de la fonction print_r () .