이상한 문자열과 정수 비교 결과
문자열을 정수와 비교할 때 PHP의 유형 강제 규칙으로 인해 예상치 못한 결과가 발생할 수 있습니다. 제공된 예에서:
$test1 = "d85d1d81b25614a3504a3d5601a9cb2e"; $test2 = "3581169b064f71be1630b321d3ca318f"; if ($test1 == 0) echo "Test 1 is Equal!?"; if ($test2 == 0) echo "Test 2 is Equal!?";
문자열 "d85d1d81..."에 유효한 숫자 데이터가 포함되어 있지 않아 0으로 해석되므로 테스트 1이 성공합니다.
그러나 테스트 2는 실패합니다. 문자열 "3581169b..."에 유효한 숫자 데이터(초기 "3581169")가 포함되어 있기 때문입니다. PHP의 변환 규칙에 따르면 이 초기 부분은 0이 아닌 숫자 값을 결정하는 데 사용됩니다.
PHP 매뉴얼에서는 문자열이 다음과 같이 평가된다고 설명합니다.
$의 경우 test2, 초기 "3581169"는 유효한 숫자 데이터이므로 값이 0이 아니므로 비교가 실패합니다.
위 내용은 PHP에서 문자열을 0과 비교하면 예상치 못한 결과가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!