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

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

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

$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'이 들어간 게시글을 검색할 경우처럼 빈도가 낮을 것 같은데...
  그래서 의아하네요

Rido님의 답변

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을 검색으로 하는 빈도는 의외로 많습니다.

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 65,640 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT