해당 포스팅은 과거 2013년 11월 28일에 작성된 포스팅에 부가 설명을 첨부한 포스팅입니다. 작성할 당시 Zeros in Javascript를 보고난 후 PHP에서는 어떻게 작동할지 궁금해서 작성했었습니다.

다양한 값의 비교

PHP 코드를 짜다가 null과 0, 그리고 공백문자 empty(), isset() 등등을 자유자재로 쓰기 위해 만들어본 표입니다.

No Declair의 경우 아무것도 지정하지 않은 변수를 사용하였습니다. =====의 경우에는 No Declair의 경우 모두 Notice: Undefined.. 경고를 발생시키나 에러가 뜨지 않는 다는 가정하에 표를 작성하였습니다.

== true 1 -1 "1" "-1" "string" false 0 "0" array() "" " " null array(0) array(null) No Declair
true true true true true true true false false false false false true false true true false
1 true true false true false false false false false false false false false false false false
-1 true false true false true false false false false false false false false false false false
"1" true true false true false false false false false false false false false false false false
"-1" true false true false true false false false false false false false false false false false
"string" true false false false false true false true false false false false false false false false
false false false false false false false true true true true true false true false false true
0 false false false false false true true true true false true true true false false true
"0" false false false false false false true true true false false false false false false false
array() false false false false false false true false false true false false true false false true
"" false false false false false false true true false false true false true false false true
" " true false false false false false false true false false false true false false false false
null false false false false false false true true false true true false true false false true
array(0) true false false false false false false false false false false false false true true false
array(null) true false false false false false false false false false false false false true true false
No Declair false false false false false false true true false true true false true false false true
=== true 1 -1 "1" "-1" "string" false 0 "0" array() "" " " null array(0) array(null) No Declair
true true false false false false false false false false false false false false false false false
1 false true false false false false false false false false false false false false false false
-1 false false true false false false false false false false false false false false false false
"1" false false false true false false false false false false false false false false false false
"-1" false false false false true false false false false false false false false false false false
"string" false false false false false true false false false false false false false false false false
false false false false false false false true false false false false false false false false false
0 false false false false false false false true false false false false false false false false
"0" false false false false false false false false true false false false false false false false
array() false false false false false false false false false true false false false false false false
"" false false false false false false false false false false true false false false false false
" " false false false false false false false false false false false true false false false false
null false false false false false false false false false false false false true false false true
array(0) false false false false false false false false false false false false false true false false
array(null) false false false false false false false false false false false false false false true false
No Declair false false false false false false false false false false false false true false false true

다양한 값의 조건문 처리

기왕 작성하는거 자주 사용하는 조건문도 사용해보았습니다. with Error라고 적은 부분은 Notice: Undefined.. 경고를 나타내는 녀석입니다. 기본적으로 ifempty 그리고 issetis_null은 서로 반대값을 나타냅니다. 그리고 issetempty의 경우 선언되지 않는 변수를 사용하여도 경고를 발생하지 않습니다. 이 4가지의 미묘한 차이를 알면 다양한 상황에 잘 활용할 수 있을 것 같습니다. :)

Function true 1 -1 "1" "-1" "string" false 0 "0" array() "" " " null array(0) array(null) No Declair
if(...) true true true true true true false false false false false true false true true false (with Error)
empty(...) false false false false false false true true true true true false true false false true
isset(...) true true true true true true true true true true true true false true true false
is_null(...) false false false false false false false false false false false false true false false true (with Error)