> 백엔드 개발 > PHP 튜토리얼 > PHP 마스터 | 당신이 모르는 3 가지 이상한 PHP 사실

PHP 마스터 | 당신이 모르는 3 가지 이상한 PHP 사실

William Shakespeare
풀어 주다: 2025-02-25 18:31:12
원래의
820명이 탐색했습니다.

PHP Master | 3 Strange PHP Facts You May Not Know PHP의 유연성과 사용 편의성은 때때로 놀라운 행동을 가리 킵니다. 이 기사는 그와 같은 세 가지를 탐구하여 그들의 근본적인 원인을 설명하고 해결책을 제공합니다. 키 테이크 아웃 :

플로팅 포인트 정밀 제한 사항 :

플로팅 포인트 숫자와 관련된 계산은 실수의 컴퓨터 표현의 고유 한 제한으로 인해 예상치 못한 결과를 얻을 수 있습니다. 예를 들어, 는 예상 8 대신 7을 반환 할 수 있습니다. 문자열 증분 동작 : PHP에서 문자열을 증가시키는 것은 고유하게 동작합니다. 문자열이 숫자로 끝나면 숫자 부분이 증가합니다. 편지로 끝나면 마지막 편지는 알파벳순으로 발전합니다. 비 알파럼이 발생한 후행 캐릭터는 영향을받지 않습니다.

    느슨한 비교 :
  • 기능의 기본 느슨한 비교는 잘못된 긍정으로 이어질 수 있습니다. 비어 있지 않은 문자열은 및 0이 아닌 숫자와 같으므로 정확한 결과를 위해 엄격한 비교 ()가 필요합니다. (int)((0.1 0.7) * 10) 플로팅 포인트 부정확성 :
  • 플로팅 포인트 숫자가 모든 실수를 완벽하게 나타낼 수는 없습니다. 겉보기에 정확하게 표현 된 숫자에 대한 작업은 미묘한 부정확성으로 이어질 수 있습니다. 이것은 PHP에 고유하지 않습니다. 컴퓨터 산술의 기본 제한입니다. 클래식 기사 "모든 컴퓨터 과학자가 플로팅 포인트 산술에 대해 알아야 할 것"은 심층적 인 설명을 제공합니다.
  • <:>이 코드를 고려하십시오 : 출력은 8이 아닌 7입니다. 중간 계산은 정밀한 제한으로 인해 0.8보다 약간 작은 값을 초래합니다. 10을 곱하면이 오류가 보존되고 정수에 캐스팅하면 분수 부품이 잘려서 7이됩니다. 이를 완화하려면 정밀도가 중요 할 때 BCMath 임의의 정밀 함수를 사용하십시오. 스트링 증분 기발한 퀴크 :
  • PHP의 문자열 증분 동작은 C와 같은 언어와 다릅니다.
  • 숫자는 해당 숫자로 끝나는 문자열의 증분 연산자 ()입니다. 편지로 끝나면 마지막 문자는 알파벳순으로 증가합니다. 비 성격의 문자로 끝나는 문자열은 변하지 않습니다. 이 행동은 문서화되어 있지만 종종 간과됩니다. in_array() in_array() 그리고 느슨한 비교 : true PHP의 느슨한 비교 규칙은 에 영향을 미칩니다. 고려하십시오 : <.> true PHP의 느슨한 비교는 에 해당하는 비어 있지 않은 문자열을 고려하기 때문에 함수는
  • 를 반환합니다. 엄격한 비교를 시행하려면 세 번째 매개 변수를 사용하십시오 :

    결론 : 이 예는 PHP의 잠재적 인 함정을 강조합니다. 항상 부동 소수점 정밀 한계를 염두에두고, 배열을 다룰 때 PHP의 고유 한 문자열 증분 동작을 이해하고 예상치 못한 결과를 피하기 위해 엄격한 비교를 사용하십시오. PHP의 유형 취급에 대한 철저한 이해는 강력하고 예측 가능한 코드를 작성하는 데 필수적입니다. fotolia를 통한 이미지

    in_array()

    (FAQS 섹션은 주요 내용의 반복적이기 때문에 제거되었으며 제공된 FAQ는 제시된 세 가지 이상한 사실과 직접 관련이 없었습니다.)

위 내용은 PHP 마스터 | 당신이 모르는 3 가지 이상한 PHP 사실의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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