In der PHP -Programmierung ist die Funktion print_r () ein sehr häufiges Debugging -Tool. Es kann verwendet werden, um die Werte und Strukturen von Variablen auszugeben, insbesondere für Druckarrays und Objekte. Für Anfänger ist es sehr wichtig, die Verwendung der Funktion print_r () zu verstehen. In diesem Artikel wird seine grundlegende Nutzung, gemeinsame Anwendungsszenarien und die effizientere Verwendung vorgestellt.
print_r () ist eine integrierte Funktion in PHP, die humanlesbare Variableninformationen ausgibt, die normalerweise zum Debuggen verwendet wird. Seine Hauptfunktion besteht darin, den Inhalt und die Struktur von Variablen, insbesondere den Anzeigeffekt von Arrays und Objekten, zu drucken.
<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 : Die Variable, die ausgegeben werden muss, normalerweise ein Array, ein Objekt oder ein anderer variabler Typ.
$ return (optional): Dieser Parameter ist ein boolescher Wert, der bestimmt, ob das Ergebnis zurückgegeben werden soll. Wenn wahr , gibt Print_r () das Ausgabeergebnis als Zeichenfolge zurück. Wenn falsch (Standard), wird das Ergebnis direkt ausgegeben.
Normale Variablen ausgeben
<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>
Ausgabe:
<span><span>Hello, World!
</span></span>
Ausgangsarray
<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>
Ausgabe:
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] => </span><span><span class="hljs-number">2</span></span><span>
[</span><span><span class="hljs-meta">2</span></span><span>] => </span><span><span class="hljs-number">3</span></span><span>
[</span><span><span class="hljs-meta">3</span></span><span>] => </span><span><span class="hljs-number">4</span></span><span>
[</span><span><span class="hljs-meta">4</span></span><span>] => </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>
Wie oben gezeigt, gibt Print_R () die Schlüssel und Werte des Arrays aus, sodass Entwickler die Struktur des Arrays einfacher ansehen können.
Ausgabe assoziatives Array
<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> => </span><span><span class="hljs-string">"John"</span></span><span>, </span><span><span class="hljs-string">"age"</span></span><span> => </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>
Ausgabe:
<span><span>Array
(
[</span><span><span class="hljs-meta">name</span></span><span>] => John
[</span><span><span class="hljs-meta">age</span></span><span>] => </span><span><span class="hljs-number">30</span></span><span>
)
</span></span>
Ausgang mehrdimensionales Array
<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> => </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> => </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>
Ausgabe:
<span><span>Array
(
[</span><span><span class="hljs-meta">fruits</span></span><span>] => Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => apple
[</span><span><span class="hljs-meta">1</span></span><span>] => banana
[</span><span><span class="hljs-meta">2</span></span><span>] => cherry
)
[</span><span><span class="hljs-meta">vegetables</span></span><span>] => Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => carrot
[</span><span><span class="hljs-meta">1</span></span><span>] => potato
)
)
</span></span>
Aus dem obigen Beispiel können wir sehen, dass print_r () den Inhalt eines mehrdimensionalen Arrays rekursiv ausgibt, was die verschachtelte Struktur des Arrays zeigt.
Der zweite Parameter von print_r () $ return ist standardmäßig auf False ausgewählt, was bedeutet, dass der Inhalt direkt ausgeht. Wenn Sie die Ausgabe als Zeichenfolge zurückgeben möchten, anstatt sie direkt zu drucken, können Sie den zweiten Parameter auf True einstellen.
<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>
Ausgabe:
<span><span>Returned output:
Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => apple
[</span><span><span class="hljs-meta">1</span></span><span>] => banana
[</span><span><span class="hljs-meta">2</span></span><span>] => cherry
)
</span></span>
Obwohl sowohl print_r () als auch var_dump () verwendet werden können, um die Ausgangsvariablen zu debuggen, sind ihre Ausgangsformulare unterschiedlich:
print_r () ist prägnanter und zeigt den Inhalt von Arrays und Objekten in einer menschlich lesbaren Form an.
var_dump () gibt detailliertere Informationen aus, einschließlich Datentyp, Länge usw., die für die strikte Prüfung von Datentypen beim Debuggen geeignet sind.
Zum Beispiel:
<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>
Ausgabe:
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] => </span><span><span class="hljs-number">2</span></span><span>
[</span><span><span class="hljs-meta">2</span></span><span>] => </span><span><span class="hljs-number">3</span></span><span>
)
</span></span>
Und die Ausgabe von var_dump () lautet:
<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>
Ausgabe:
<span><span>array(</span><span><span class="hljs-number">3</span></span><span>) {
[</span><span><span class="hljs-meta">0</span></span><span>] =>
</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>] =>
</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>] =>
</span><span><span class="hljs-built_in">int</span></span><span>(</span><span><span class="hljs-number">3</span></span><span>)
}
</span></span>
Daraus können wir sehen, dass var_dump () den Typ und den Datenwert jedes Elements ausgibt, während print_r () den Array -Inhalt in prägnanterer Weise ausgibt.
Debugg -Array und Objektstruktur
print_r () ist ideal, um die Struktur eines Arrays oder Objekts schnell anzusehen, insbesondere wenn komplexe Datenstrukturen debuggen. Es ist einfacher zu lesen und zu verstehen als herkömmliche Echo oder var_dump () .
Ausgabe der JSON -Datenstruktur
Bei der Verarbeitung von JSON -Daten können wir mithilfe von Print_R () an Parsen -Arrays oder Objekten helfen.
<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>
Ausgabe:
<span><span>Array
(
[</span><span><span class="hljs-meta">name</span></span><span>] => John
[</span><span><span class="hljs-meta">age</span></span><span>] => </span><span><span class="hljs-number">30</span></span><span>
)
</span></span>
Post drucken oder Anforderungsdaten abrufen
Wenn Sie Formulardaten empfangen, können Sie prüfen, ob die übergebenen Daten korrekt sind.
<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>
print_r () ist eine sehr bequeme PHP -Funktion, insbesondere für das Debuggen während der Entwicklungsphase. Es kann klar die Struktur von Arrays und Objekten anzeigen und Entwicklern dazu beitragen, den Dateninhalt besser zu verstehen. Durch flexible Verwendung von print_r () können Sie schnell Probleme finden und Ihren Code verbessern.
Ich hoffe, dieser Artikel kann Ihnen helfen, die grundlegende Verwendung der Funktion print_r () besser zu verstehen und zu beherrschen.