[PHP] 변수가 값을 가지고 있는지 확인 하는 방법 feat. empty
문제
[[PHP]] 개발을 하면서 [[if]] 문을 이용해 [[변수]]에 값이 있는지 확인하고 값이 있는 경우에 특정 코드를 실행하는 경우가 많이 있습니다.
그런데 적지 않은 확률로 [[undefined variable]] 오류 메시지를 보는 경우가 많아서 해당 변수에 값이 있는지 확인 하기 위해서는 아래의 두 과정이 필요합니다.
- 변수가 선언되어 있는지
- 변수가 값을 가지고 있는지
위 과정이 어떻게 진행되는지 정리해봅니다.
솔루션
위 과정을 진행 하는 방법은 간단합니다. 아래와 같이 if 문에서 두 조건을 확인 하면 되죠.
if ( isset( $var ) and $var ) :
// 실행할 코드
endif;
$var 라는 변수가 선언되어 있는지 [[isset]] 함수를 이용해 확인하고 [[and]] 조건으로 묶어서 변수에 값이 있는지 확인 한 후 코드를 실행 합니다.
그런데 매번 이렇게 두번 체크하기 상당히 번거롭죠. [[empty]] 함수가 이 번거로움을 해결해 줍니다.
empty
PHP.net 에서 empty 함수에 대한 설명을 보면 아래와 같이 나와 있습니다.
A variable is considered empty if it does not exist or if its value equals
empty, php.netFALSE
.
여기서 중요한 부분은 변수가 존재 하지 않거나(if it does not exist) 변수가 FALSE 에 상응하는 값(0, 빈칸 등)을 가지고 있으면 empty 함수가 TRUE 를 반환한다는 것입니다.
다시 말해서 변수가 선언된 상태로 FALSE 에 상응하는 값을 가지고 있지 않다면 empty 함수는 FALSE 를 반환한다는 것입니다. 그렇다면 우리는 위에서 언급한 코드를 아래와 같이 간단하게 작성할 수 있습니다.
if ( ! empty( $var ) ) :
// 실행 할 코드
endif;
이 코드는 정확히 위 코드와 같은 기능을 합니다. $var 변수가 선언된 상태로 값을 가지고 있으면 empty 함수가 FALSE 를 반환하게 때문에 앞에 ! 를 넣어서 부정형으로 만들어주면 결국은 “empty 함수가 FALSE 라면” 이라는 조건문이 만들어지는거죠.
이상으로 조금 더 간편하게 변수가 값을 가지고 있는지 empty 함수를 이용해 확인하는 방법을 알아보았습니다.
주의사항
- 만약 변수가 0 값을 가지고 있는데, 이 0이라는 값이 의미가 있는 값이라면 empty 함수 사용에 주의할 필요가 있습니다.
댓글 남기기