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 중국어 웹사이트의 기타 관련 기사를 참조하세요!