프로그래밍/php

[PHP]변수 null 확인( isset(), empty(), is_null() 함수 비교 )

jskir 2022. 3. 22. 16:42
반응형

폼에서 post값이 넘어오거나 할 경우 post변수에 값이 있는지 없는지 확인을 해야할 경우가 있다.

그럴때 쓰기 좋은 함수들이 있다.

 

 

empty()

변수가 비어있는지 확인하는 함수.

 

isset()

변수가 설정되어 있는지 확인하는 함수.

 

is_null()

주어진 변수가 있는지를 확인하는 함수.

 

 

각 함수들의 뜻이 비슷해서 어렵다. 

직접 각각의 함수들을 테스트 해보기로 한다.!

 

<테스트 소스>

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?
    function value_test($a,$b){
        $re[0= $b;
        ($a)                    ? $re[1= "true"    :    $re[1= "false" ;            //$a값 여부 판단
        (empty($a))        ? $re[2= "true"    :    $re[2= "false";            //빈 값 여부 판단
        (is_null($a))        ? $re[3= "true"    :    $re[3= "false" ;            //null값 여부 판단
        (isset($a))        ? $re[4= "true"    :    $re[4= "false";            //변수의 존재 여부 판단
        return $re;
    }
 
    #$a 선언 안함
    $b = '$a선언을 안함';
    $depth[] = value_test($a,$b);
 
    $a = NULL;
    $b = "NULL";
    $depth[] = value_test($a,$b);
 
    $a = 0;
    $b = "숫자 0";
    $depth[] = value_test($a,$b);
 
    $a = 1;
    $b = "숫자 1";
    $depth[] = value_test($a,$b);
 
    $a = "";
    $b = "\"\"";
    $depth[] = value_test($a,$b);
 
    $a = " ";
    $b = "\" \"";
    $depth[] = value_test($a,$b);
 
    $a = "0";
    $b = "문자 0";
    $depth[] = value_test($a,$b);
 
    $a = "1";
    $b = "문자 1";
    $depth[] = value_test($a,$b);
?>
  <meta charset="UTF-8" />
 
<style>
    th {background-color:#eee;}
    td {background-color:white;}
    td:nth-child(1) {background-color:#f8ffce;}
</style>
 
  <table style="" cellpadding=0 cellspacing=1 bgcolor=black>
    <tr>
        <th width=150px></th>
        <th width=120px>if($a)</th>
        <th width=120px>if(empty($a))</th>
        <th width=120px>if(is_null($a))</th>
        <th width=120px>if(isset($a))</th>
    </tr>
    <?for($i=0;$i<count($depth);$i++){?>
    <tr>
        <?for($y=0;$y<count($depth[$i]);$y++){?>
        <td align=center><?=$depth[$i][$y]?></td>
        <?}?>
    </tr>
    <?}?>
  </table>
cs

 

테스트 결과 표

 

반응형