php 버그인가요? 한번 봐주세요
본문
그누보드5 공통함수에 get_selected($field, $value)가 있습니다.
이것을 사용해서 select 옵션 초기값을 지정해주고 있는데, 좀 이상한 점이 있네요.
특정값에서 자꾸 엉뚱한 값이 selected 되길래
해당값을 if문으로 확인해보니, 아래와 같이 두 값은 분명 다른것 같은데, 참이 되네요.
$a = "10";
$b = "10e0";
if ($a == $b){
echo "두 값이 같다";
} else {
echo "두 값이 다르다";
}
실행결과: 두값이 같다로 출력됨...
뭐가 문제일까요? php 버그인가요?
답변 3
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 "두 값이 다르다 ";
?>
이퀄기호 3개로 비교해 보세요.
if ($a === $b){
이렇게요.
http://php.net/manual/kr/language.operators.comparison.php
여기를 참고해 보세요.
감사합니다. 많은 참고가 되었습니다.