>  기사  >  백엔드 개발  >  PHP의 오류 유형과 오류 수준을 이해하는 데 도움이 됩니다.

PHP의 오류 유형과 오류 수준을 이해하는 데 도움이 됩니다.

WBOY
WBOY원래의
2021-10-20 18:34:173247검색

이전 글에서는 "PHP의 예외 처리가 무엇인지 이해하는 데 도움이 되는 5분"을 가져왔는데, 여기서는 PHP 예외 처리와 관련된 문제를 자세히 소개했습니다. PHP 오류 처리, PHP 오류 유형 및 PHP 오류 수준에 대한 관련 지식이 모든 사람에게 도움이 되기를 바랍니다.

PHP의 오류 유형과 오류 수준을 이해하는 데 도움이 됩니다.

프로그래머가 개발 과정에서 실수를 하는 것은 불가피하며, 다른 이유로 인해 오류가 발생할 수 있습니다. 이때 PHP에는 어떤 오류 유형과 오류 수준이 있는지 이해하는 것이 필요합니다. 무료 "php Error Handling" 교육 동영상을 클릭하여 관련 지식을 배울 수도 있습니다.

PHP 오류 유형

PHP 프로그램 오류는 일반적으로 구문 오류, 실행 오류, 논리 오류의 세 가지 범주로 나뉩니다.

  • 문법 오류

문법 오류는 프로그래밍에서 가장 흔하고 해결하기 가장 쉬운 오류입니다. 예를 들어 세미콜론이 누락되면 오류 메시지가 표시됩니다. 이 오류는 프로그램 실행을 중지하고 오류 메시지를 표시합니다. 오류 메시지를 토대로 프로그램을 수정하고 다시 실행해보겠습니다.

구문 오류는 프로그래밍 과정에서 발생하는 가장 일반적인 오류 유형이라고 할 수 있습니다. 동시에 해결하기 가장 쉬운 오류이기도 합니다. 예를 들어 입력할 때 세미콜론을 입력하는 것을 잊어버렸거나 잘못 입력한 경우입니다. 함수 구문이 잘못되었습니다.

<?php
    $a = 1
    echo $a;
?>

위 예시에서는 두 번째 줄 끝에 세미콜론이 누락되어 출력 결과가 올바르지 않습니다.

세미콜론을 추가하면 프로그램이 정상적으로 실행되고 출력 결과는 1이 됩니다. 이를 통해 구문 오류가 발생하면 프로그램이 중지되고 계속 실행된다는 것을 알 수 있습니다. 구문 오류가 해결되면 프로그램이 계속 실행될 수 있습니다.

  • 런타임 오류

런타임 오류는 프로그램 실행 중에 발생하는 오류입니다. 이때 구문 오류는 없지만 주의해야 합니다. 실행 과정에서 PHP는 구문 오류와는 달리 프로그램에 뭔가 불합리한 부분이 있음을 경고합니다. 프로그램은 계속해서 아래쪽으로 실행됩니다.

예제는 다음과 같습니다.

<?php
    $a = 1;
    $b = 0;
    $c = $a / $b;
    echo "$a / $b = $c";
?>

위 예에서는 구문 오류는 없지만 0을 제수로 사용할 수 없으며 출력 결과는 다음과 같습니다.

PHP의 오류 유형과 오류 수준을 이해하는 데 도움이 됩니다.

  • Logic error

로직 오류가 있는 프로그램 정상적으로 실행되지만, 출력 결과가 잘못되었습니다. 근본 원인은 우리가 작성한 코드에서 발생합니다. 프로그램 실행 중에 알람 메시지가 없습니다. 예는 다음과 같습니다.

<?php
    $a = 1;
    $b = 2;
    if($a = $b){
        echo &#39;$a = $b&#39;;
    }else{
        echo &#39;$a != $b&#39;;
    }
?>

출력 결과:

PHP의 오류 유형과 오류 수준을 이해하는 데 도움이 됩니다.

위 예를 보면 출력 결과가 명백히 틀리고 비논리적이라는 것을 알 수 있습니다. 논리 오류가 발생하면 경고 메시지가 표시되지 않습니다. 이를 위해서는 우리가 더욱 경계하고 논리적 오류를 피해야 합니다.

지식 확장: PHP 오류 수준

PHP에는 오류 유형과 오류 수준이 모두 정의되어 있습니다. 오류 수준은 php.ini에서 정의할 수 있습니다. (php.ini 찾는 방법은 "PHP에서 어떻게 파일을 업로드하나요? 읽어보시면 이해가 되실 겁니다! "를 클릭하세요)

PHP에서 발생하는 오류 유형은 다음과 같습니다.

1 --- E_ERROR ---치명적인 런타임 오류는 일반적으로 메모리 할당으로 인해 발생하는 문제와 같이 복구할 수 없는 상황입니다. 그 결과 스크립트가 종료되고 더 이상 실행되지 않습니다. E_ERROR---致命的运行时错误,一般是不可恢复的情况,例如内存分配导致的问题,后果是导致脚本终止、不再继续运行。    

2   --- E_WARNING  ---  运行时警告(非致命错误),仅给出提示信息,但是脚本不会终止运行。    

4  ---  E_PARSE  ---  编译时语法解析错误,仅由分析器产生。    

8  --- E_NOTICE ---运行时通知,表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。  

16 ---   E_CORE_ERROR ---   在 PHP 初始化启动过程中发生的致命错误,类似 E_ERROR,但是是由 PHP 引擎核心产生的。        

64  ---  E_COMPILE_ERROR  ---  致命编译时错误,类似 E_ERROR,但是是由 Zend 脚本引擎产生的。    

128  ---  E_COMPILE_WARNING

2 --- E_WARNING --- 런타임 경고(치명적이지 않은 오류), 프롬프트 정보만 제공되지만 스크립트는 작업을 종료하지 않습니다. 🎜🎜4 --- E_PARSE --- 분석기에서만 생성되는 컴파일 시간 구문 분석 오류입니다. 🎜🎜8 --- E_NOTICE --- 스크립트가 오류로 나타날 수 있는 상황에 직면했음을 나타내는 런타임 알림이지만 정상적으로 실행될 수 있는 스크립트에도 유사한 알림이 있을 수 있습니다. 🎜🎜16 --- E_CORE_ERROR --- PHP 초기화 시작 중에 발생하는 치명적인 오류로, E_ERROR와 비슷하지만 PHP 엔진 코어에 의해 생성됩니다.​ ​ 🎜🎜64 ​ --- E_COMPILE_ERROR ​ --- E_ERROR와 유사하지만 Zend 스크립트 엔진에 의해 생성되는 치명적인 컴파일 타임 오류입니다. 🎜🎜128 --- E_COMPILE_WARNING --- E_WARNING과 유사하지만 Zend 스크립트 엔진에 의해 생성되는 컴파일 시간 경고(치명적이지 않은 오류)입니다. . 🎜

1024 --- E_STRICT --- 코드 수정에 대한 PHP의 제안을 활성화하여 코드의 최고의 상호 운용성과 향후 호환성을 보장합니다.​ ​ E_STRICT  ---  启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。        

8192  ---  E_DEPRECATED  ---  运行时通知,启用后将会对在未来版本中可能无法正常工作的代码给出警告。    

16384   --- E_USER_DEPRECATED ---   用户产生的警告信息,类似 E_DEPRECATED,但是是由用户自己在代码中使用 PHP 函数 trigger_error() 来产生的。    

30719  ---  E_ALL 

8192 --- E_DEPRECATED --- 런타임 알림을 활성화하면 향후 버전에서 제대로 작동하지 않을 수 있는 코드에 대해 경고를 표시합니다.

16384 --- E_USER_DEPRECATED --- 사용자가 생성한 경고 메시지는 E_DEPRECATED와 유사하지만 코드에서 PHP 함수 Trigger_error()를 사용하여 사용자가 직접 생성한 것입니다.

30719 --- E_ALL --- E_STRICT를 제외한 모든 오류 및 경고 메시지.​ 🎜🎜PHP에 대해 더 알고 싶으시다면 "🎜PHP 동영상 튜토리얼🎜"을 클릭해서 배워보세요! 🎜

위 내용은 PHP의 오류 유형과 오류 수준을 이해하는 데 도움이 됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.