예를 들어
$tmp1 = '10';
$tmp2 = '10e0';
이라고 했을 때
$tmp1 == $tmp2 => true 가 됩니다.
물론 논리비교를 했을 때에는 false 가 되긴 합니다.
아무리 찾아봐도 e0 이라는 문자열이 어떤 역할을 하는 지에 대해서는 찾기가 힘드네요.
위의 예시에서 $tmp1 == $tmp2 가 true 가 되는 이유가 무엇일까요?
|
답변 2개 / 댓글 5개
채택된 답변
+20 포인트
문자열은 없고 실수형 아닌가요??
답변에 대한 댓글 5개
2022-12-10 (토) 16:03:51
$tmp1 = '30';
$tmp2 = '30e0';
if((string)$tmp1 == (string)$tmp2) {
이 경우에도 참이 나오네요;;
}
이해가 될 듯 말 듯 하지만, 그냥 넘어가야지 싶습니다.
$tmp2 = '30e0';
if((string)$tmp1 == (string)$tmp2) {
이 경우에도 참이 나오네요;;
}
이해가 될 듯 말 듯 하지만, 그냥 넘어가야지 싶습니다.
2022-12-10 (토) 16:15:51
=== 이런표기법도 있는데
이거 참고해보세요.
https://www.geeksforgeeks.org/string-comparison-using-vs-strcmp-in-php/
이거 참고해보세요.
https://www.geeksforgeeks.org/string-comparison-using-vs-strcmp-in-php/
2022-12-10 (토) 22:10:52
지수 표기법으로 인한 비교문 에서의
묵시적 형변환과 느슨한 비교의 결과입니다.
e 또는 E 의 역할은 php 에서만 국한되지 않습니다.
JavaScript 에서도 표현됩니다.
답변을 작성하려면 로그인이 필요합니다.