[PHP] #35 PHP 변수 상태 확인 및 디버깅 함수 정리: isset, empty, var_dump까지

2025. 9. 8. 17:00·Programming/PHP
반응형

 

 

안녕하세요 토스트데브입니다.
이번 글에서는 PHP에서 변수의 존재 여부를 확인하거나, 디버깅 시 값을 출력하는 함수들을 정리해보겠습니다.

개발 중 문제가 생겼을 때 변수의 상태를 빠르게 파악하고 오류를 찾는 데 매우 유용한 함수들이며, 초보자부터 실무 개발자까지 모두 필수로 익혀야 할 기능입니다.

 

 

✅ 1. 변수 상태 확인 함수

🔎 isset() – 변수가 설정되어 있는지 확인

$name = "Tom";
if (isset($name)) {
    echo "변수 존재함!";
}

 

  • null일 경우도 false 반환
  • 여러 개의 변수를 동시에 검사할 수 있음
if (isset($a, $b, $c)) { ... }

 

 

🔎 empty() – 값이 비어 있는지 확인

$val = "";
if (empty($val)) {
    echo "비어있는 값입니다.";
}

📌 0, "0", "", null, false, [] → 모두 empty로 간주됨 isset()과는 차이가 있으니 주의

 

🔎 is_null() – 값이 null인지 정확히 확인

$data = null;
if (is_null($data)) {
    echo "null 입니다.";
}

📌 isset()은 변수의 존재 여부 is_null()은 값이 null인지 검사

 

 

🧪 2. 변수 디버깅 및 출력 함수

✅ var_dump() – 상세한 변수 정보 출력

$info = ["name" => "Tom", "age" => 30];
var_dump($info);
/*
array(2) {
  ["name"]=> string(3) "Tom"
  ["age"]=> int(30)
}
*/

 

  • 타입 + 길이 + 값까지 상세 출력
  • 디버깅 시 가장 많이 쓰이는 함수 중 하나

 

✅ print_r() – 사람이 읽기 쉬운 배열/객체 출력

$fruits = ["apple", "banana"];
print_r($fruits);
/*
Array
(
    [0] => apple
    [1] => banana
)
*/

 

📌 var_dump()보다는 간결하지만 데이터 타입 정보는 생략됨

 

✅ gettype() – 변수의 자료형 반환

$num = 10;
echo gettype($num);  // 출력: integer

 

✅ debug_zval_dump() – 참조 카운트까지 출력

$name = "Tom";
debug_zval_dump($name);
/*
string(3) "Tom" refcount(1)
*/

📌 주로 고급 디버깅 시 사용 (메모리 관리 분석 등)

 

 

💡 실전 팁

  • 조건문 작성 시 isset()과 empty()를 구분해서 써야 예상치 못한 오류를 방지할 수 있습니다.
  • API 응답, 배열 값 검사, 로그인 여부 판단 등에 자주 쓰입니다.
  • var_dump()와 print_r()는 디버깅용으로만 사용하고, 운영 환경에서는 로그 파일로 리다이렉트하거나 제거해야 합니다.
  • 에디터에 따라 xdebug와 함께 쓰면 var_dump()의 출력이 더 잘 보이게 됩니다.

 

 

✅ 마무리

이번 글에서는 변수 상태 확인 함수(예: isset, empty, is_null)와 디버깅 출력 함수(예: var_dump, print_r, gettype)를 정리해보았습니다.

이러한 함수들은 코드 흐름을 이해하고 디버깅할 때 매우 유용하며, 실무에서 매일 쓰는 기초 도구들이기도 합니다.
자연스럽게 익히고 적절히 활용해보세요!

 

#PHP, #변수확인, #isset, #empty, #is_null, #var_dump, #print_r, #디버깅, #PHP기초, #웹개발, #gettype

반응형
저작자표시 비영리 (새창열림)

'Programming > PHP' 카테고리의 다른 글

[PHP] #34 PHP 파일 업로드, 권한 설정, 복사/이동 완벽 정리  (0) 2025.09.07
[PHP] #33 PHP 파일 함수 정리: 파일 읽기, 쓰기, 삭제까지 완벽 마스터!  (0) 2025.09.06
[PHP] #32 PHP DateTime 클래스 완전 정복: 날짜 계산, 차이, 포맷 변경까지  (4) 2025.09.05
[PHP] #31 PHP 날짜/시간 함수 완벽 정리: date, time, strtotime, mktime 총정리  (2) 2025.09.04
[PHP] #30 PHP 수학함수, PHP 수학 함수 심화편: 삼각함수부터 로그, 지수 함수까지  (6) 2025.09.03
'Programming/PHP' 카테고리의 다른 글
  • [PHP] #34 PHP 파일 업로드, 권한 설정, 복사/이동 완벽 정리
  • [PHP] #33 PHP 파일 함수 정리: 파일 읽기, 쓰기, 삭제까지 완벽 마스터!
  • [PHP] #32 PHP DateTime 클래스 완전 정복: 날짜 계산, 차이, 포맷 변경까지
  • [PHP] #31 PHP 날짜/시간 함수 완벽 정리: date, time, strtotime, mktime 총정리
TOASTDEV
TOASTDEV
인스턴트 코딩 #토스트데브 #토스트뎁 #코딩공부 #개발입문
  • TOASTDEV
    토스트데브
    TOASTDEV
    • 분류 전체보기 (155)
      • 알쓸신잡 (47)
        • 코딩에 대하여 (13)
        • 컴퓨터에 대하여 (12)
        • IT 국내외 소식 (22)
      • Web Front (28)
        • HTML (10)
        • CSS (14)
        • JavaScript (4)
      • Programming (35)
        • PHP (35)
      • Database (12)
        • SQL (12)
        • MySQL (0)
      • Server (24)
        • Linux (24)
      • Review (9)
        • Overseas Trip (0)
        • Domestic Travel (0)
        • Product Use Review (4)
        • Football Sports Review (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Youtube Toastdev
    • Naver Blog
  • 공지사항

    • [유튜브] 유튜브 영상 업로드 안내
  • 인기 글

  • 태그

    리눅스보안
    SQL문법
    프론트엔드기초
    ubuntu서버
    css기초
    SQL기초
    리눅스기초
    php
    웹개발기초
    데이터베이스
    웹개발입문
    웹프로그래밍
    php입문
    웹디자인기초
    ubuntuserver
    코딩입문
    HTML
    서버보안
    데이터분석
    서버관리
    PHP문자열
    php문법
    SQL강의
    php기초
    sql
    웹개발
    서버입문
    컴퓨터기초
    프론트엔드
    html기초
  • 최근 댓글

  • 최근 글

  • 전체
    오늘
    어제
  • 반응형
  • hELLO· Designed By정상우.v4.10.3
TOASTDEV
[PHP] #35 PHP 변수 상태 확인 및 디버깅 함수 정리: isset, empty, var_dump까지
상단으로

티스토리툴바