$stx==='0' 에 대하여

$stx==='0' 에 대하여

QA

$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 의 차이는

사용자가 필드값으로 입력한 값이냐

코드상으로 정의한 값이냐의 차이입니다.

자세한 답변 감사드립니다.

  제목에 '0'이 들어간 게시글을 검색할 일이 자주 있나봐요
  제목에 '1' 이나 '2'이나 '3'이 들어간 게시글을 검색할 경우처럼 빈도가 낮을 것 같은데...
  그래서 의아하네요

php는 숫자와 문자를 동등하게 생각하는 언어이기 때문입니다.

 

if ($stx == '0')

이면 문자든 숫자든 0가 오면 조건을 충족합니다.

 

하지만 

if ($stx === '0')

이렇게 써주면 해당변수의 타입을 체크를 합니다

즉 문자인 0만 체크를 하는겁니다.

 

금융쪽 홈페이지 제작시...나 그냥 습관을 === 으로 들이시는것도 좋은 판단 입니다.

답변 감사합니다.
list.php 38행에

$is_search_bbs = false;
if ($sca || $stx || $stx === '0') {    //검색이면
    $is_search_bbs = true;      //게시판검색 구분변수 true 지정


그럼 여기의 $stx === '0' 는
$stx 검색어가 문자 0일때 왜  $is_search_bbs 구분변수가 참으로 되는건가요?

예를 제목으로 했을 뿐 검색대상, 즉 $sfl값은 달라질 수 있습니다.

wr_1에 잔액이 들어가도록 개발하였을 경우에

$sfl을 wr_1로 선택하고 $stx를 0으로 입력하는 검색,

즉 잔액이 0원을 찾는 경우가 있을 수 있습니다.

이외의 방문회수가 0회인 고객, 수학점수가 0점인 학생 등

0을 검색으로 하는 빈도는 의외로 많습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 661
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT