> 백엔드 개발 > PHP 튜토리얼 > PHP에서 문자열을 0과 비교하면 예상치 못한 결과가 나타나는 이유는 무엇입니까?

PHP에서 문자열을 0과 비교하면 예상치 못한 결과가 나타나는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-07 11:44:11
원래의
125명이 탐색했습니다.

Why Does Comparing a String to 0 in PHP Produce Unexpected Results?

이상한 문자열과 정수 비교 결과

문자열을 정수와 비교할 때 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 매뉴얼에서는 문자열이 다음과 같이 평가된다고 설명합니다.

  • '.', 'e' 또는 'E'가 포함되어 있으면 부동 소수점입니다.
  • 그렇지 않으면 은 정수입니다.
  • 유효한 숫자 데이터로 시작하면 그 값입니다.
  • 그렇지 않으면 값은 0입니다.

$의 경우 test2, 초기 "3581169"는 유효한 숫자 데이터이므로 값이 0이 아니므로 비교가 실패합니다.

위 내용은 PHP에서 문자열을 0과 비교하면 예상치 못한 결과가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿