1. 유형 변환 문제
<span style="color: #008080;">intval</span><span style="color: #000000;">(); </span><span style="color: #008080;">var_dump</span>(<span style="color: #008080;">intval</span>('1asdfasd')); <span style="color: #008000;">//</span><span style="color: #008000;">1</span> <span style="color: #008080;">var_dump</span>(<span style="color: #008080;">intval</span>('awqw12')); <span style="color: #008000;">//</span><span style="color: #008000;">0</span> <span style="color: #008080;">var_dump</span>(<span style="color: #008080;">intval</span>(<span style="color: #0000ff;">array</span>())); <span style="color: #008000;">//</span><span style="color: #008000;">0</span> <span style="color: #008080;">var_dump</span>(<span style="color: #008080;">intval</span>(<span style="color: #0000ff;">array</span>('foo','val'))); <span style="color: #008000;">//</span><span style="color: #008000;">1</span> <span style="color: #008080;">var_dump</span>(<span style="color: #008080;">intval</span>(0x1A)); <span style="color: #008000;">//</span><span style="color: #008000;">26 十六进制转换</span> <span style="color: #008080;">var_dump</span>(<span style="color: #008080;">intval</span>('asdfqwer')); <span style="color: #008000;">//</span><span style="color: #008000;">0</span>
intval 변환된 값이 문자열인 경우 오류를 반환하지 않고 0을 반환합니다. 변환된 값이 배열인 경우 두 가지 상황이 있습니다. 변환된 값이 빈 배열인 경우 0을 반환합니다. , 그렇지 않으면 1을 반환합니다
참고: PHP는 32비트 메모리를 사용하여 정수를 저장합니다. 32비트는 4294967296 숫자를 나타낼 수 있습니다. 부호가 있는 경우 -2147483647부터 2147483648까지입니다.
2. 내장 기능의 느슨함 문제
switch(); $i='3adcd'; switch($i){ case 1: echo 'i is 1'; break; case 2: echo 'i is 2'; break; case 3: echo 'i is 3'; break; default: echo 'i is default'; break; }
위의 결과는 스위치 케이스 3에 들어갑니다. 왜 이런 일이 발생합니까? 스위치가 숫자 유형 케이스인 경우 스위치는 매개변수를 int 클래스로 변환하므로 위의 실행 시 $i가 먼저 유형 변환이 수행됩니다. 변환 결과는 3입니다. . .
<span style="color: #008080;">in_array</span><span style="color: #000000;">(); </span><span style="color: #800080;">$arr</span> = [0,1,2,3,'test'<span style="color: #000000;">]; </span><span style="color: #008080;">var_dump</span>(<span style="color: #008080;">in_array</span>('abd',<span style="color: #800080;">$arr</span>)); <span style="color: #008000;">//</span><span style="color: #008000;"> true</span> <span style="color: #008080;">var_dump</span>(<span style="color: #008080;">in_array</span>('1bc',<span style="color: #800080;">$arr</span>)); <span style="color: #008000;">//</span><span style="color: #008000;"> true</span>
위의 실행 결과가 왜 이런 걸까요? 나중에 매뉴얼을 쿼리해 보니 in_array는 기본적으로 값이 같은지 비교만 하고 유형이 같은지는 비교하지 않는 느슨한 비교 방식으로 되어 있다고 공식적으로 나와 있습니다. 값이 동일하므로 위의 내용이 있습니다. 이 결과에 대해서는 in_array 함수의 세 번째 매개변수를 True로 설정하는 것이 엄격한 비교 방법입니다.
위의 사항은 일상적인 개발에서 주의해야 할 모든 사항입니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
