문자 숫자 비교
input2를 어떻게 구하는건지 모르겠습니다.
$input_2 < 74 && $input_2 > "74" 이부분인데.. 그니까
"74" < ? < 74를 만족하는 ?를 찾으라는 건데
"74"는 아스키 코드로 바꾸면 55 52니까
55 52 < ? < 74를 만족하는 ?를 구하면 되는게 맞나요?
그러면 55 53 즉 75도 답이 되야하는데 왜 안될까요..? 75를 넣으면 아스키코드로 변환돼서 55 53으로 바뀌니까 맞아야 하는거 아닌가..
1시간동안 고민했는데 도저히 모르겠습니다.
#web
작성자 정보
답변
1
ks
2024 Invitational 2nd Place
우선, php에서 문자열간의 비교는 사전식으로 진행되지만,
만약 두 문자열이 모두 숫자인 경우 숫자로 변환하여 비교합니다.
예를들어, "a73" > "a074"은 사전식으로 후자가 앞서기 때문에 참이며,
"73" < "074"은 숫자로 변환시 후자가 더 크기 때문에 참입니다.
그리고 숫자와 문자열의 비교의 경우, 문자열을 숫자로 변환한 뒤 비교합니다.
이때 앞부분에서 숫자를 읽어오기를 시도하는데, "74a"의 경우 74로 변환이 됩니다.
다만 앞부분에 숫자가 없는경우 0으로 변환하며, "a74"의 경우 0으로 변환이 됩니다.
때문에 각각의 비교연산에서 $input_2 값이 다르게 작용하게 되며, 해당 특성을 이용하여 해결하는 문제입니다.