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

php 버그인가요? 한번 봐주세요 채택완료

그냥님 9년 전 조회 5,295

그누보드5  공통함수에 get_selected($field, $value)가 있습니다.

이것을 사용해서 select 옵션 초기값을 지정해주고 있는데, 좀 이상한 점이 있네요.

 

특정값에서 자꾸 엉뚱한 값이 selected 되길래

해당값을 if문으로 확인해보니, 아래와 같이 두 값은 분명 다른것 같은데, 참이 되네요.


$a = "10";
$b = "10e0";

 

if ($a == $b){
   echo "두 값이 같다";
} else {
   echo "두 값이 다르다";

 

실행결과:  두값이 같다로 출력됨...

 

뭐가 문제일까요? php 버그인가요? 

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

답변 3개

채택된 답변
+20 포인트
9년 전

B변수가 숫자형으로 인식되기 때문에 그렇습니다.

문자형으로 비교하면 두값이 다르다 라고 나오는 것을 확인할 수 있습니다.

아래와 같이 해보세요.

<?php

//문자형
$a = "10";
$b = "10e0";
if (strcmp($a,$b)==1) echo "두 값이 같다 ";
else echo "두 값이 다르다 ";

//숫자형
if (is_numeric($b)==1) echo $b."는 숫자형 입니다. ";
else echo $b."는 문자형 입니다. ";

//단순 비교
if ($a === $b) echo "두 값이 같다 ";
else echo "두 값이 다르다 ";

//자료형 비교
if ($a == $b) echo "두 값이 같다 ";
else echo "두 값이 다르다 ";

?> 

 

 

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

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

9년 전

감사합니다. 많은 참고가 되었습니다. 

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

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

9년 전

이퀄기호 3개로 비교해 보세요.

 

if ($a === $b){ 

 

이렇게요. 

 

 

http://php.net/manual/kr/language.operators.comparison.php">http://php.net/manual/kr/language.operators.comparison.php 

여기를 참고해 보세요. 

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

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

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

로그인