PHP var_dump () 대 print_r ()


297

의 차이 무엇입니까 var_dump()print_r()문자열로 배열 밖으로 침의 측면에서는?

답변:


355

var_dump함수는 유형값을 포함하여 변수 / 표현에 대한 구조화 된 정보를 표시 합니다 . 배열은 구조를 보여주기 위해 들여 쓰기 된 값으로 재귀 적으로 탐색됩니다. 또한 어떤 배열 값과 객체 속성이 참조인지 보여줍니다.

print_r()변수는 사람이 읽을 수있는 방식으로 변수에 대한 정보를 표시합니다. 배열 값은 요소 를 표시하는 형식으로 표시 됩니다 . 객체에도 비슷한 표기법이 사용됩니다.

예:

$obj = (object) array('qualitypoint', 'technologies', 'India');

var_dump($obj) 화면에 아래 출력이 표시됩니다.

object(stdClass)#1 (3) {
 [0]=> string(12) "qualitypoint"
 [1]=> string(12) "technologies"
 [2]=> string(5) "India"
}

그리고 print_r($obj)화면에 아래 출력이 표시됩니다.

stdClass Object ( 
 [0] => qualitypoint
 [1] => technologies
 [2] => India
)

더 많은 정보


76
print_r (null)은 var_dump (null)이 NULL을 반환하는 곳에서 아무것도 반환하지 않습니다. 이는 디버깅 할 때 유용합니다
rosh3000

7
'var_export'로 답을 확장 할 수 있습니까?
joryl

1
var_dump ()의 두 가지 장점은 덤프 된 정보가 자동으로 사전 요소에 포함된다는 것입니다. var_dump ()를 사용하면 각 유형마다 고유 한 색상이 있음을 알 수 있습니다. 가독성 향상.
율리우스

3
@Julian xdebug가 설치된 경우에만
Leif

57

일반적으로 print_r( )출력은 더 읽기 쉽고 간결하며 읽기 쉽습니다. 일명 인간이 읽을 수 있지만 데이터 유형을 표시 할 수는 없습니다.

으로 print_r()당신도 변수로 출력을 저장할 수 있습니다 :

$output = print_r($array, true);

var_dump()수 없습니다. 그러나 var_dump()데이터 유형을 표시 할 수 있습니다.


9
이 비트 이보다 비록 위해서 var_dump ()는 변수에 저장 될 수있다 stackoverflow.com/questions/139474/...
SgtPooki을

7
절약이 필요한 경우 '형제' var_export () 일 수 있습니다
CSᵠ

21

var_dump() 물건의 종류와 내용을 보여줍니다.

그래서 당신은 => (string)"var" 예를 얻을 수 있습니다.

print_r() 내용을 출력합니다.

출력 => "var" 예가 여기 있습니다.


12
더 나은 예는 var_dump(0.0);어떤 출력 float(0)print_r(0.0);어떤 출력 0(따라서 유형 혼란을 초래할 수 있음 ) 일 것입니다 ...
ircmaxell

13

무엇을 사용해야하는지 묻는 경우 일반적으로 print_r()값을 표시 var_dump()하고 변수 유형에 문제가있는 경우에 사용합니다.


8

var_dump객체 / 변수에 대한 구조화 된 정보를 표시합니다. 여기에는 유형 과 값 이 포함 됩니다. 같은 print_r배열이 되풀이되어 들여 쓰기됩니다.

print_r배열에 대한 키와 요소를 나타내는 형식으로 값에 대한 사람이 읽을 수있는 정보를 표시 합니다.

주목해야 할 가장 중요한 것은 var_dump출력 유형뿐만 아니라 값은 출력 print_r하지 않는 것입니다.


5

사이에 유의 한 차이 var_dumpprint_r

두 함수 모두 변수에 대한 정보를 덤프 하지만 var_dump덤프 될 여러 매개 변수 print_r는 두 매개 변수 중 두 매개 변수를 가져올 수 있습니다. 여기서 첫 번째 매개 변수는 덤프 할 변수이고 두 번째 매개 변수는 부울 값입니다.

var_dump두 번째 매개 변수 print_rtrue로 설정하면 print_r이 변수 정보를 반환 할 수있는 값만 덤프 / 인쇄 할 수있는 값을 반환 할 수 없습니다 . 의 반환 값 print_r에있을 것입니다 문자열 형식입니다.

로 인쇄되는 정보 는 원시 값 print_rvar_dump인쇄 할 때 훨씬 읽기 쉬운 형식으로되어 있습니다.

print_r함수는 var_dump값을 반환 할 수 없기 때문에 주로 디버깅 목적으로 사용될 수있는 많은 컨텍스트에서 사용될 수 있습니다.


1
vardump하나 이상의 인수를 취 하면 각각 덤프됩니다.
감독

@bishop, 예, 더 많은 논증을 취할 수는 있지만 어떤 가치도 반환하지 않습니다
Akshay Khale

답을 고치세요?
Govind Rai

@GovindRai 수정
Akshay Khale

"var_dump는 어떤 값도 반환 할 수 없습니다"? 예, 그럴 수 있습니다. 킨다 ob_start(); var_dump($var); $dump=ob_get_clean();
Sinus Mackowaty

3

브라우저에 출력 할 때 var_dump () 또는 printr의 출력을 프리 태그에 넣는 것이 좋습니다 .

print "<pre>";
print_r($dataset);
print "</pre>";

더 읽기 쉬운 결과를 제공합니다.


2

var_dump($var) 추가 세부 사항을 제공하여 세부 사항을 표시합니다.

  • 값의 데이터 유형 (자손 요소 포함)
  • 변수의 요소 수
  • 값의 길이

1

큰 배열의 경우 print_r은 유용한 것보다 훨씬 많은 정보를 표시 할 수 있습니다. 처음 2000 자 또는 필요한 문자를 표시하여 이와 같이자를 수 있습니다.

  echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";

1

var_dump () :-

  1. 이 함수는 유형과 값을 포함하는 하나 이상의 표현식에 대한 구조화 된 정보를 표시합니다. 배열과 객체는 구조를 보여주기 위해 들여 쓰기 된 값으로 재귀 적으로 탐색됩니다.
  2. 이 함수는 변수의 요소 수를 표시합니다.
  3. 이 기능은 변수의 길이를 표시합니다.
  4. 값을 반환 할 수 없습니다. 값만 인쇄하십시오.
  5. 디버깅 목적으로 사용됩니다.

예 :-

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

출력 :-

   array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

print_r () :-

  1. 변수에 대한 사람이 읽을 수있는 정보를 인쇄합니다.
  2. 변수의 요소 수를 var_dump ()로 표시하지 않습니다.
  3. 변수의 변수 길이를 var_dump ()로 표시하지 않습니다.
  4. printf_r ()에서 두 번째 매개 변수를 true로 설정하면 값을 반환합니다.

예 :-

<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>

산출:-

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

"값을 반환 할 수 없으며 값만 인쇄하십시오." 예, 그럴 수 있습니다. 킨다 ob_start(); var_dump($var); $dump=ob_get_clean();
Sinus Mackowaty

0

print_r () 및 var_dump ()는 PHP에서 디버깅 목적으로 사용되는 배열 디버깅 함수입니다. print_r () 함수는 배열 키와 그 멤버를 Array ([key] = value)로 반환하는 반면 var_dump () 함수는 데이터 유형과 길이를 가진 배열 키를 가진 배열리스트를 반환합니다. 예 : Array (array_length) {[0] = string (1) 'a'}.


0

var_dump를 사용하여 여러 매개 변수를 전달할 수 있습니다.

var_dump("array1",$array1,"array2",$array2);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.