input2의 조건은 문자열의 길이가 1보다 크고 3보다 작을 것입니다. 즉, 길이가 2여야 한다는 것입니다. 그리고 74보다 작고 "74"보다는 커야 합니다. 숫자와 비교할 때는 문자열을 숫자로 변환하는 특성이 있으니까 숫자상으로는 74보다 작고 사전상으로는 "74"보다 큰 걸 입력하면 되는 문제입니다. 그래서 저는 "8."을 입력했습니다. 사전상으로는 "74"보다 크고 숫자상으로는 숫자로 변환시킬 수 없다고 판단해서 0이라고 처리하든, 있다고 판단해서 8이라고 처리하든 문제 없을 것 같았기 때문입니다. 그런데 이렇게 입력하니까 플래그가 나오지 않았습니다. input1이 틀린 건 아닙니다. input2를 바꾸니까 플래그가 나왔기 때문입니다. 혹시 이게 왜 이렇게 되는지 아시는 분 있으신가요?
$input_2 < 74 && $input_2 > "74"
조건 중 2번째 조건에서 걸립니다.
https://www.php.net/manual/en/language.operators.comparison.php
If both operands are numeric strings, or one operand is a number and the other one is a numeric string, then the comparison is done numerically.
양쪽 피 연산자가 모두 숫자형 문자열이면 숫자로 비교를 합니다.
"8." 은 숫자형 문자열(float)로 해석되고 "74" 역시 숫자형 문자열(int)에 해당되므로 숫자로 비교합니다. 8.0보다 74가 크므로 false를 반환합니다.