테스트 사이트 - 개발 중인 베타 버전입니다

$stx==='0' 에 대하여 채택완료

음바폐 7년 전 조회 5,962

$stx === '0' 표현식이 자주 등장하여 여쭙니다

 

if ($stx === '0') // 검색이면

 

검색어가 '0과 똑같으면 검색으로 해석이 된다' 라는 뜻인데 이해가 안갑니다..

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

제목에 0이 들어간 게시글을 검색하고 싶은 사용자가 있습니다.

만약 아래의 코드를 사용한다면 검색되지 않습니다.

 

</p>

<p>if ($sca || $stx) {    //검색이면

    $is_search_bbs = true;      //게시판검색 구분변수 true 지정</p>

<p>

 

php의 유연성 때문에 0은 숫자형으로 형변환되고 0은 false이기 때문입니다.

따라서 아래처럼 사용하면 엄격한 비교가 이루어지기 때문에

위의 사용자는 원하는 검색값을 얻을 수 있게 됩니다.

 

</p>

<p>if ($sca || $stx || $stx === '0') {    //검색이면

    $is_search_bbs = true;      //게시판검색 구분변수 true 지정</p>

<p>

 

ps. 사용자가 필드값으로 입력한 값은 문자형입니다.

검색창필드에 0을 입력하면 숫자 0이 아닌 문자 0입니다.

$stx === '0' 와 $stx === 0 의 차이는

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

음바폐
7년 전
자세한 답변 감사드립니다.

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

댓글을 작성하려면 로그인이 필요합니다.

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

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

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

음바폐
7년 전
도움이 많이 되었습니다. 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

Rido
7년 전

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

 

if ($stx == '0')

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

 

하지만 

if ($stx === '0')

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

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

음바폐
7년 전
답변 감사합니다.
list.php 38행에

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


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

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인