PHP 프로그래밍에서 print_r () 함수는 매우 일반적인 디버깅 도구입니다. 변수의 값과 구조, 특히 배열 및 객체를 위해 변수의 값과 구조를 출력하는 데 사용될 수 있습니다. 초보자에게는 print_r () 함수의 사용법을 이해하는 것이 매우 중요합니다. 이 기사는 기본 사용, 일반적인 응용 프로그램 시나리오 및보다 효율적으로 사용하는 방법을 소개합니다.
print_r () 는 PHP의 내장 기능으로, 일반적으로 디버깅에 사용되는 사람이 읽을 수있는 가변 정보를 출력합니다. 주요 기능은 변수의 내용과 구조, 특히 배열 및 객체의 디스플레이 효과를 인쇄하는 것입니다.
<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>
$ 변수 : 출력이 필요한 변수, 일반적으로 배열, 객체 또는 기타 변수 유형.
$ return (선택 사항) :이 매개 변수는 결과를 반환할지 여부를 결정하는 부울 값입니다. true 인 경우 print_r ()는 출력 결과를 문자열로 반환합니다. false (기본값) 인 경우 결과는 직접 출력됩니다.
출력 일반 변수
<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>
산출:
<span><span>Hello, World!
</span></span>
출력 배열
<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>
산출:
<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>
위에서 볼 수 있듯이 print_r ()는 배열의 키와 값을 출력하여 개발자가 배열의 구조를보다 쉽게 볼 수있게합니다.
출력 연관 배열
<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>
산출:
<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>
출력 다차원 배열
<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>
산출:
<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>
위의 예에서, 우리는 print_r () 가 다차원 배열의 내용을 재귀 적으로 출력하여 배열의 중첩 구조를 보여줍니다.
print_r () $ return 의 두 번째 매개 변수는 false 로 기본적으로 표시되므로 컨텐츠가 직접 출력됩니다. 출력을 직접 인쇄하는 대신 문자열로 출력을 반환하려면 두 번째 매개 변수를 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>
산출:
<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>
print_r () 및 var_dump () 가 모두 출력 변수를 디버그하는 데 사용될 수 있지만 출력 양식은 다음과 같습니다.
print_r () 는 더 간결하고 배열 및 객체의 내용을 사람이 읽을 수있는 형태로 표시합니다.
Var_dump ()는 디버깅 중 데이터 유형을 엄격하게 검사하는 데 적합한 데이터 유형, 길이 등을 포함하여보다 자세한 정보를 출력합니다.
예를 들어:
<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>
산출:
<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>
var_dump () 의 출력은 다음과 같습니다.
<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>
산출:
<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>
이것으로부터 우리는 var_dump ()가 각 요소의 유형과 데이터 값을 출력하는 반면, print_r ()는 배열 내용을보다 간결한 방식으로 출력합니다.
디버그 배열 및 객체 구조
print_r ()는 특히 복잡한 데이터 구조를 디버깅 할 때 배열 또는 객체의 구조를 신속하게 보는 데 이상적입니다. 전통적인 에코 또는 var_dump () 보다 읽고 이해하기가 더 쉽습니다.
출력 JSON 데이터 구조
JSON 데이터를 처리 할 때 print_r ()을 사용하면 구문 분석 배열 또는 객체를 볼 수 있습니다.
<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>
산출:
<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>
게시물을 인쇄하거나 요청 데이터를 얻습니다
양식 데이터를 수신 할 때 print_r ()은 전달 된 데이터가 올바른지 확인하는 데 도움이 될 수 있습니다.
<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 () 는 매우 편리한 PHP 기능이며, 특히 개발 단계에서 디버깅에 적합합니다. 배열 및 객체의 구조를 명확하게 표시하여 개발자가 데이터 내용을 더 잘 이해할 수 있도록 도와줍니다. print_r ()를 유연하게 사용하면 문제를 신속하게 찾아 코드를 향상시킬 수 있습니다.
이 기사가 print_r () 함수의 기본 사용법을 더 잘 이해하고 마스터하는 데 도움이되기를 바랍니다.