PHP 자료형 확인 및 var_dump() vs gettype() 차이점

PHP 자료형 확인에는 var_dump()는 자료형과 값을 함께 표기합니다. gettype()은 값은 생략하고 자료형만 확인할 때 사용합니다.

var_dump() : 자료형 + 값

PHP에서 자료형을 확인하는 첫 번째 방법은 var_dump()함수를 사용하는 것입니다. var_dump()는 데이터의 자료형과 값을 함께 표기합니다.

<?php
    $a = 1000; //정수형(Integer)
    $b = 'Hello'; //문자형(String)
    $c = 3.1425; //실수형(Float = Double)
    $d = true; //논리형(Boolean)
    $e = null; //Null형(Null)
    $f = array(9, 8, 7); //배열(Array)
    
    var_dump($a);
    var_dump($b);
    var_dump($c);
    var_dump($d);
    var_dump($e);
    var_dump($f);
?>

결과

int(1000)
string(5) "Hello"
float(3.1425)
bool(true)
NULL
array(3) { [0]=> int(9) [1]=> int(8) [2]=> int(7) }
//원래 각 줄 별로 줄바꿈은 안되지만 가독성을 위해서 조정했습니다.

gettype() : 자료형

PHP의 자료형 확인 두 번째 방법은 gettype() 함수의 사용입니다. gettype() 함수는 자료형의 값은 표시하지 않는 대신 데이터 타입만 간단하게 출력합니다.

단, var_dump() 달리 gettype() 함수는 echoprint와 같은 출력 함수 뒤에 사용해야 합니다.

<?php
    $a = 1000;
    $b = 'Hello';
    $c = 3.1425;
    $d = true;
    $e = null;
    $f = array(9, 8, 7);

    echo gettype($a);
    echo gettype($b);
    echo gettype($c);
    echo gettype($d);
    echo gettype($e);
    echo gettype($f);
?>

이 상태로 출력하면 한 줄에 모두 출력되어 가독성이 떨어집니다. HTML 문서에서 확인할 때 가독성을 높이기 위해서 nl2br() 함수와 \n 줄바꿈 명령어를 같이 삽입해줍니다. nl2br() 함수에서 nl은 숫자 1이 아닌 new line의 알파벳 L의 소문자입니다.

마침표 .PHP 문자열을 더할 때 사용하는 문자열 연산자입니다.

<?php
    $a = 1000;
    $b = 'Hello';
    $c = 3.1425;
    $d = true;
    $e = null;
    $f = array(9, 8, 7);

    echo nl2br(gettype($a)."\n");
    echo nl2br(gettype($b)."\n");
    echo nl2br(gettype($c)."\n");
    echo nl2br(gettype($d)."\n");
    echo nl2br(gettype($e)."\n");
    echo nl2br(gettype($f)."\n");
?>

결과

integer
string
double
boolean
NULL
array

var_dump() vs gettype() 차이점

var_dump()는 자료형의 타입과 값을 모두 출력합니다.

<?php
    $a = 1000;
    var_dump($a);
?>

결과

int(1000) //var_dump() 함수는 자료형(integer)과 변수값(1000)이 모두 출력됩니다.

반면 gettype()은 자료형의 타입만 간단하게 출력합니다.

<?php
    $a = 1000;
    echo gettype($a);
?>

결과

integer //gettype() 함수는 자료형(integer)만 출력됩니다.

자료형만 간단하게 확인시 gettype() 함수를 사용하고 값까지 모두 출력할 경우 var_dump()를 사용하면 됩니다.