$stx==='0' 에 대하여
본문
$stx === '0' 표현식이 자주 등장하여 여쭙니다
if ($stx === '0') // 검색이면
검색어가 '0과 똑같으면 검색으로 해석이 된다' 라는 뜻인데 이해가 안갑니다..
답변 3
제목에 0이 들어간 게시글을 검색하고 싶은 사용자가 있습니다.
만약 아래의 코드를 사용한다면 검색되지 않습니다.
if ($sca || $stx) { //검색이면
$is_search_bbs = true; //게시판검색 구분변수 true 지정
php의 유연성 때문에 0은 숫자형으로 형변환되고 0은 false이기 때문입니다.
따라서 아래처럼 사용하면 엄격한 비교가 이루어지기 때문에
위의 사용자는 원하는 검색값을 얻을 수 있게 됩니다.
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true; //게시판검색 구분변수 true 지정
ps. 사용자가 필드값으로 입력한 값은 문자형입니다.
검색창필드에 0을 입력하면 숫자 0이 아닌 문자 0입니다.
$stx === '0' 와 $stx === 0 의 차이는
사용자가 필드값으로 입력한 값이냐
코드상으로 정의한 값이냐의 차이입니다.
!-->!-->php는 숫자와 문자를 동등하게 생각하는 언어이기 때문입니다.
if ($stx == '0')
이면 문자든 숫자든 0가 오면 조건을 충족합니다.
하지만
if ($stx === '0')
이렇게 써주면 해당변수의 타입을 체크를 합니다
즉 문자인 0만 체크를 하는겁니다.
금융쪽 홈페이지 제작시...나 그냥 습관을 === 으로 들이시는것도 좋은 판단 입니다.
예를 제목으로 했을 뿐 검색대상, 즉 $sfl값은 달라질 수 있습니다.
wr_1에 잔액이 들어가도록 개발하였을 경우에
$sfl을 wr_1로 선택하고 $stx를 0으로 입력하는 검색,
즉 잔액이 0원을 찾는 경우가 있을 수 있습니다.
이외의 방문회수가 0회인 고객, 수학점수가 0점인 학생 등
0을 검색으로 하는 빈도는 의외로 많습니다.