> 백엔드 개발 > PHP 튜토리얼 > 0과 문자열을 비교할 때 PHP의 `==` 연산자가 예상치 못한 결과를 생성하는 이유는 무엇입니까?

0과 문자열을 비교할 때 PHP의 `==` 연산자가 예상치 못한 결과를 생성하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-15 00:59:13
원래의
923명이 탐색했습니다.

Why Does PHP's `==` Operator Produce Unexpected Results When Comparing 0 and Strings?

PHP의 0과 문자열의 놀라운 비교

0이 문자열과 같다는 PHP의 평가는 비교 연산자 동작에서 비롯됩니다. 비교를 위해 ==를 사용할 때 PHP는 데이터 유형을 호환 가능하도록 변환합니다. 이 경우 0(정수)이 문자열로 캐스팅되어 문자열 'e'와 비교할 수 있습니다.

그러나 가격이 명시적으로 0으로 설정되면 이 동작이 일관되지 않습니다. ==와 ===의 미묘한 차이 때문일 수 있습니다. ==는 유형 변환을 수행하는 반면 ===는 데이터 유형을 포함하여 엄격한 동등성을 확인합니다.

===를 사용하면 해당 유형을 포함하여 실제 데이터 값을 기반으로 비교가 수행됩니다. 제공된 코드에서 ==를 ===로 바꾸면 가격이 0으로 설정된 경우 0이 'e'와 같지 않은 것으로 올바르게 평가됩니다.

PHP 버전 변경 사항에 대한 참고 사항:

PHP 8에서는 비교 동작이 변경되었습니다. 숫자 문자열을 숫자와 비교할 때 PHP는 이제 숫자 비교를 사용합니다. 그렇지 않으면 PHP는 비교하기 전에 숫자를 문자열로 변환합니다.

===:

$item['price'] = 0;
/* Code to get item information goes in here */
if($item['price'] === 'e') {
    $item['price'] = -1;
}
로그인 후 복사

이러한 수정을 통해 코드는 다음을 정확하게 결정합니다. 가격은 0 또는 교환 'e'로 의도되어 품목 가격이 적절하게 처리되도록 합니다.

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

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