PHP는 변수의 존재를 확인하는 isset() 함수를 제공합니다. 그러나 문서에서 언급했듯이 설정되지 않은 변수와 NULL로 설정된 변수를 구별하지 못합니다.
제한이 있는 대체 접근 방식
이 제한을 극복하려는 한 가지 시도는 다음과 같습니다. :
<code class="php">if (isset($v) || @is_null($v)) {...}</code>
그러나 is_null()도 비슷한 문제에 직면해 설정되지 않은 변수에 대해 TRUE를 반환합니다. 또한 @($v === NULL)은 @is_null($v)과 동일하게 동작하므로 사용할 수 없게 됩니다.
신뢰할 수 있는 솔루션: array_key_exists()
의 경우 변수 존재를 확인하는 신뢰할 수 있는 방법인 array_key_exists()를 고려해보세요. 전역 변수에 적용하면 존재하지 않는 변수와 NULL로 설정된 변수를 효과적으로 구분합니다.
구별 예시
다음 예를 고려하세요.
<code class="php">$a = NULL; var_dump(array_key_exists('a', $GLOBALS)); // TRUE var_dump(array_key_exists('b', $GLOBALS)); // FALSE</code>
출력은 array_key_exists()가 NULL로 설정되어 있어도 $a의 존재를 정확하게 식별함을 보여줍니다.
결론
isset() 및 is_null()은 변수 존재 테스트를 부분적으로 지원하고, array_key_exists()는 보다 정확하고 포괄적인 솔루션을 제공합니다. 이 방법은 전역 및 로컬 범위 모두에서 설정되지 않은 변수와 NULL로 설정된 변수를 올바르게 구별합니다.
위 내용은 PHP에서 변수 존재를 안정적으로 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!