현재 위치: > 최신 기사 목록> IS_NULL을 사용할 때 잘못 판단을 피하는 방법은 무엇입니까? 잘못된 오류가 반환되는 것을 방지하기위한 팁

IS_NULL을 사용할 때 잘못 판단을 피하는 방법은 무엇입니까? 잘못된 오류가 반환되는 것을 방지하기위한 팁

gitbox 2025-08-07

PHP에서 IS_NULL ()은 변수가 NULL 인지 확인하는 데 일반적으로 사용되는 기능입니다. 그러나 PHP의 유형 변환 메커니즘으로 인해 IS_NULL ()은 예기치 않은 결과를 반환하여 일부 경우 잘못 판단 할 수 있습니다. 따라서 IS_NULL ()를 올바르게 사용하는 방법을 이해하고 오류 오류를 반환하지 않도록하는 것이 매우 중요합니다.

1. is_null () 의 기본 사용법

먼저 IS_NULL () 의 기본 사용법을 살펴 보겠습니다. 매개 변수를 수락하고 true 또는 false를 반환하여 변수가 null 인지 표시합니다.

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span></span>

이 예에서 $ var1 의 값은 null 이므로 is_null ($ var1)true를 반환하고 $ var2 의 값은 문자열 "Hello" 이므로 false입니다 .

2. 유형 변환 문제로 인한 잘못 판단

IS_NULL () 은 변수가 NULL 인지 여부를 감지하기위한 것이지만 경우에 따라 다른 유형의 값이 NULL 과 유사하여 잘못 판단을 초래할 수 있습니다.

2.1 0'0'null 의 차이

PHP에서 0'0' 은 "빈"으로 간주되지만 NULL 과 같지 않습니다. 이 값을 확인하기 위해 IS_NULL ()을 사용하면 올바르게 허위 로 판단됩니다.

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-string">'0'</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>

2.2 빈 배열과 의 차이

빈 배열 []NULL 은 PHP에서도 다릅니다. 어떤 경우에는 비슷해 보이지만 IS_NULL ()는 명시 적으로 거짓을 반환합니다.

 <span><span><span class="hljs-variable">$var1</span></span><span> = [];
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>

빈 배열을 판단하기 위해 IS_NULL ()을 오용하면 잘못된 결과로 이어질 수 있습니다.

3. 잘못 판단을 피하는 방법은 무엇입니까?

잘못 판단을 피하려면 먼저 IS_NULL () 의 판단 논리와 PHP의 유형 변환 규칙을 이해해야합니다. 다음은 잘못 판단을 피하기위한 몇 가지 팁입니다.

3.1 엄격한 평등 표시 ===

변수가 무효 인지 여부를 결정해야하고 다른 "빈"값 (예 : 0 , '0' , 빈 배열 등)과 혼동 될 수 있다고 걱정하는 경우, 유형과 값이 모두 일관되도록 엄격한 평등 부호 ===를 사용할 수 있습니다.

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-string">'0'</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>

이것은 유형 변환으로 인한 잘못 판단을 피할 수 있습니다.

3.2 다른 "빈"값을 명확하게 구별합니다

False , 0 , " (빈 문자열), 빈 배열 등과 같은 PHP에는"빈 "값이 많이 있습니다. 이러한 다른 상황을 판단 해야하는 경우 is_null () 대신 빈 () 함수를 사용할 수 있습니다.

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = [];

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>

empty () 가 null , 0 , 빈 문자열, 빈 배열 등을 포함하여 빈 값인 경우 true를 반환합니다.

3.3 맞춤 검사 로직

때로는 변수의 상태를 판단하기 위해 더 복잡한 논리가 필요할 수 있습니다. 사용자 정의 기능을 통해 다양한 상황을 처리 할 수 있습니다. 예를 들어, 변수가 NULL 인지 다른 "빈"값인지 확인할 때 먼저 NULL을 제외한 다음 다른 점검을 수행 할 수 있습니다.

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">isActuallyNull</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$var</span></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$var</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>;
}

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isActuallyNull</span></span><span>(</span><span><span class="hljs-literal">null</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isActuallyNull</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>));    </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isActuallyNull</span></span><span>(</span><span><span class="hljs-string">''</span></span><span>));   </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span></span>

4. 요약

PHP에서 IS_NULL () 은 매우 유용한 기능이지만 잘못 판단 문제에주의하십시오. PHP의 유형 변환 메커니즘으로 인해 많은 "null"값이 과 혼동 될 수 있습니다. 따라서 엄격한 비교 연산자 ===를 사용하여 다른 "빈"값을 명확하게 구별하거나 실제 요구에 따라 검사 로직을 사용자 정의하는 것은 잘못 판단을 피하는 효과적인 방법입니다. 합리적인 판단을 통해 코드의 정확성을 보장하고 잘못 판단으로 인한 오류를 피할 수 있습니다.