정의 및 사용 방법
- PHP 버전
- 4+
print_r()
은
주어진 변수나 값의 정보를 사람이 읽기 쉬운 형태로 출력(Prints human-readable)하는 디버깅용 함수입니다.
주로 배열이나 객체와 같은 변수의 구조와 값을 읽기 쉽게 확인할 때 사용합니다.
특징
- 값을 반환하지 않고, 정보를 브라우저나 CLI 같은 표준 출력으로 즉시 기록합니다.
$return
매개변수를true
로 설정하면 출력 대신 문자열로 반환할 수 있습니다.- 배열과 객체 같은 복잡한 구조를 좀 더 직관적으로 확인할 수 있습니다.
- 출력 내용이 간결하며, 타입이나 길이 정보는 기본적으로 표시되지 않습니다.
- 디버깅과 로그 확인 등 가볍게 구조를 살펴볼 때 주로 사용됩니다.
반면에 var_dump()
는
주어진 변수나 값의 타입·길이·값을 가공하지 않은(원시, raw) 구조화된 정보로 상세하게 출력하는 디버깅용 함수입니다.
구문
print_r(mixed $value, bool $return = false): string|true
매개변수
$value |
정보를 출력할 대상 변수 또는 값입니다. mixed 는 PHP의 모든 데이터 타입을 받을 수 있음을 의미합니다. |
---|---|
$return |
옵션.
출력 방식을 결정합니다.
|
반환 값
반환 값은 $return
매개변수의 설정에 따라 달라집니다.
$return
이false
로 설정된 경우- 변수의 정보을 화면에 출력하고,
true
를 반환합니다.
$return
이true
로 설정된 경우- 변수의 정보을 화면에 출력하지 않고, 대신 해당 정보를 문자열로 반환합니다.
변경 이력
PHP 8.4.0부터 | 반환 값 유형이 sring|bool 에서 string|true 로 변경되었습니다. |
---|
주의할 점
print_r()
은 스칼라 값(정수, 문자열, 실수 등)의 타입 정보를 출력하지 않습니다.
예를 들어 123
(정수)과 '123'
(문자열)은 동일하게 123
으로 보여지며, 12.3
(실수)과 '12.3'
(문자열)은 동일하게 12.3
으로 보여집니다.
예제
print_r()
은 주어진 변수나 값의 정보를 사람이 읽기 쉬운 형태로 출력하는 디버깅용 함수입니다.
이 예제에서는 다양한 데이터 타입별로 print_r()
이 어떻게 출력되는지 직접 살펴보겠습니다.
스칼라 타입(Scalar Types)
정수(int)
$int = 123;
print_r($int);
123
실수(float/double)
$float = 3.14;
print_r($float);
3.14
문자열(string)
$str = 'Hello';
print_r($str);
Hello
문자열(string) 숫자
$str_num_1 = '123';
print_r($str_num_1);
$str_num_2 = '12.3';
print_r($str_num_2);
123
12.3
부울(boolean)
$bool_true = true;
print_r($bool_true);
$bool_false = false;
print_r($bool_false);
print_r()
은 불리언 값에 대해 true
는 1
로 출력하지만,
false
는 아무것도 출력하지 않습니다(빈 문자열).
1
배열(array)
단순 배열(인덱스 배열)
$arr = [1, 2, 3];
print_r($arr);
Array
(
[0] => 1
[1] => 2
[2] => 3
)
연관 배열
$assoc = ['a' => 1, 'b' => 2, 'c' => 3];
print_r($assoc);
Array
(
[a] => 1
[b] => 2
[c] => 3
)
혼합 배열
$complex = ['a' => 1, 'b' => [2, 3], 'c' => 4];
print_r($complex);
Array
(
[a] => 1
[b] => Array
(
[0] => 2
[1] => 3
)
[c] => 4
)
객체(object)
class Person {
public $name = "John";
private $age = 30;
}
$p = new Person();
print_r($p);
Person Object
(
[name] => John
[age:Person:private] => 30
)
객체의 출력에 대한 상세 설명입니다.
- Person Object
- 객체의 클래스 이름이
Person
임을 나타냅니다.
- 속성별 표시
[name]=> John
→ 공개(public) 속성[age:Person:private] => 30
→ 비공개(private) 속성.Person
은 속성이 정의된 클래스 이름을 나타냄
NULL
$n = null;
print_r($n);
print_r()
은 null
값에 대해 아무것도 출력하지 않습니다(빈 문자열).
리소스(resource)
$fp = fopen("php://temp", "r");
print_r($fp); // resource(5) of type (stream)
fclose($fp);
Resource id #2
리소스의 출력에 대한 상세 설명입니다.
resource
- 리소스(resource) 타입임을 나타냅니다.
#2
- 현재 실행 중인 스크립트에서 생성된 리소스 ID입니다.
- 새로운 리소스를 생성하면
#3
,#4
… 식으로 증가합니다.
참고문헌
같이 보기
- PHP var_dump() 함수 – 변수의 타입·길이·값까지 출력
- PHP isset() 함수와 empty() 함수 – 개념 정리 및 사용법과 차이점
- PHP gettype() 함수 – 변수의 데이터 타입 문자열로 확인
- PHP is_int() 함수 – 변수의 정수(integer) 타입 확인
- PHP is_float() 함수 – 변수의 부동소수점 숫자(float) 타입 확인
- PHP is_numeric() 함수 – 변수의 값이 숫자 또는 숫자 문자열인지 확인
- PHP is_string() 함수 – 변수의 문자열(string) 타입 확인
- PHP is_array() 함수 – 변수의 배열(array) 타입 확인
- PHP is_bool() 함수 – 변수의 부울(boolean) 타입 확인
- PHP is_object() 함수 – 변수의 객체(object) 타입 확인
- PHP is_resource() 함수 – 변수의 리소스(resource) 타입 확인
- PHP is_null() 함수 – 변수의 NULL 타입 확인