0은 숫자가 아닌(즉, 숫자로 변환할 수 없는 문자)(연산자는 ==) 모든 선행 문자열과 비교되어 모두 true를 반환합니다. for
은 숫자이고, 문자열을 비교할 때는 먼저 문자열을 숫자로 변환한 후 비교를 해보세요. 문자열을 숫자로 변환할 수 없으면 변환 결과는 0이 됩니다. 따라서 0과 비교하면 됩니다.
더 자세한 비교 규칙, 다양한 유형의 비교 규칙은 PHP 설명서/언어 참조/연산자/비교 연산자에서 확인할 수 있습니다.
PHP에서 두 개의 숫자 문자열이 있는 경우 (숫자만 포함하는 문자열) 비교 비교 시 직접 수치로 변환하여 비교
다음 예: (두 변수 $a와 $b의 마지막 숫자가 같지 않음에 주의)
코드 복사 코드는 다음과 같습니다.
//예제 1
$a = ' 511203199106034578';
$b = '511203199106034579';
if ($a==$b) {
echo '같음'; >}
?>
위 프로그램을 실행했지만 결과가 같음(생각했던 것과 다름)
$a와 $b에 각각 문자 a를 추가합니다
코드는 다음과 같습니다. //예제 2
$a = 'a511203199106034578';$a = 511203199106034578; $b = 511203199106034579;
echo $a ; // 출력 5.11203199106030000echo $b; 5.1120319910603E 17은 511203199106030000
?>입니다. ;
예제 1에서 얻은 결과는 같습니다.
이 예상치 못한 결과를 방지하려면 다음과 같이 유형 비교 연산자 ===를 사용하는 것입니다($a가 $b와 같은 경우, 유형도 동일합니다)
//예제4 $a = '511203199106034578';
$b = '511203199106034579'if ($a===$b) {
echo '같음'; else {
echo 'notEqual';
}
?>
이런 방식으로 예상되는 notEqual
을 얻을 수 있습니다.
위 내용은 쉽게 무시하고 오류로 이어질 수 있는 Tellmewhen 문자열 PHP의 함정을 소개합니다. 숫자와 문자열의 비교에는 Tellmewhen 문자열 측면이 포함되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.