문자열 비교를 위해 PHP를 사용할 때 다음 코드에 표시된 함정에 직면했습니다.
으아악첫 번째 결과는 true이고 두 번째 결과는 false입니다. 공식 문서를 살펴보니 첫 번째를 강제로 숫자 0으로 변환하면 두 번째도 강제로 134로 변환해야 하지만, 134로 변환하면 세 번째가 맞아야 한다.
두 개의 문자열을 인쇄했는데, 공식 문서를 읽어도 이해할 수 없는 결과가 나왔습니다. 조언 부탁드립니다.
ringa_lee2017-06-16 09:20:38
http://www.php.net/manual/zh/...
var_dump('0134b40fsbi94u8'=='134'); //false는 비교입니다
모두 문자열이기 때문에 첫 번째 숫자를 먼저 비교합니다. 첫 번째 숫자의 비교 결과는 0과 1의 비교이므로 false입니다
으아악 으아악另外 字符串之间的不建议使用比较运算符直接去比较大小,要是在需要比较php也提供了一些字符的比较函数
学习ing2017-06-16 09:20:38
다양한 유형의 데이터를 비교하려면 일치 === 및 불일치 !== 연산자를 사용하는 것이 가장 좋습니다.
비교 연산자 일치 === 및 불일치 !==가 유형을 확인하기 때문입니다.
한마디로 비교할 때 ==와!= 대신 ===와!==를 사용해 보세요.
또한 PHP는 다음과 같은 일련의 유형 검사 기능도 제공합니다.
으아악일부 함수는 다음과 같이 주의가 필요한 유형 검사 매개변수도 제공합니다.
으아악세 번째 매개변수의 값이 true이면 함수는 유형이 동일한지도 확인합니다.
또한 PHP는 비교 연산자 ==,!=,===,!==를 지원하여 두 배열 또는 두 객체가 같은지 비교합니다.
으아악PHP는 두 개체가 동일한지 확인하기 위해 비교 연산자(==,!=,===,!==)도 지원합니다.
으아악仅有的幸福2017-06-16 09:20:38
첫 번째 문자열은 과학적 표기법을 정확히 따릅니다.
유형 제한이 느슨한 언어의 경우 뉴스에 이러한 함정이 자주 등장합니다.
엄격하게 입력된 수표를 사용해 보세요