php 오류 보고 수준은 다음과 같습니다. 1. E_ERROR 치명적인 런타임 오류, 일반적으로 복구 불가능 2. E_WARNING 런타임 경고(치명적이지 않은 오류) 3. E_PARSE 컴파일 타임 구문 분석 오류 4. E_CORE_ERROR 초기화 프로세스 발생 5. 초기화 시작 프로세스 중에 발생하는 E_CORE_WARNING 경고(치명적이지 않은 오류) 6. E_COMPILE_ERROR;
이 튜토리얼의 운영 환경: windows7 시스템, PHP8 버전, DELL G3 컴퓨터
프로그램 개발 과정에서 프로그램 실행 오류가 자주 발생하며, PHP는 프로그램의 오류 수준에 따라 지침을 제공합니다. . 다른 프롬프트를 표시합니다. 예를 들어 경고, 오류 등이 있지만 이러한 오류가 작은 오류인 경우 이러한 오류가 보고되지 않도록 할 수 있습니다.
PHP의 오류 수준은 다음과 같습니다.
1 |
E_ERROR E_ERROR (integer)
|
致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。 | ||||||||||
2 |
E_WARNING (integer)
|
运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。 | ||||||||||
4 |
E_PARSE (integer)
|
编译时语法解析错误。解析错误仅仅由分析器产生。 | ||||||||||
8 |
E_NOTICE (정수)
| 치명적인 작업 시간 오류. 이러한 유형의 오류는 일반적으로 메모리 할당으로 인해 발생하는 문제와 같이 복구할 수 없는 상황입니다. 결과적으로 스크립트가 종료되고 더 이상 실행되지 않습니다. |||||||||||
16 |
E_CORE_ERROR E_CORE_ERROR (integer) |
在PHP初始化启动过程中发生的致命错误。该错误类似E_ERROR ,但是是由PHP引擎核心产生的。 |
since PHP 4 | |||||||||
32 |
E_CORE_WARNING (integer) |
PHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING ,但是是由PHP引擎核心产生的。 |
since PHP 4 | |||||||||
64 |
E_COMPILE_ERROR (integer) |
致命编译时错误。类似E_ERROR , 但是是由Zend脚本引擎产生的。 |
since PHP 4 | |||||||||
128 |
E_COMPILE_WARNING (integer) |
编译时警告 (非致命错误)。类似 E_WARNING ,但是是由Zend脚本引擎产生的。 |
since PHP 4 | |||||||||
256 |
E_USER_ERROR (integer) |
用户产生的错误信息。类似 E_ERROR (integer)
|
PHP 초기화 시작 중에 발생한 치명적인 오류입니다. 이 오류는 E_ERROR 🎜와 유사하지만 PHP 엔진 코어에 의해 생성됩니다. 🎜 |
PHP 4부터🎜🎜 | ||||||||
PHP 초기화 시작 중에 발생하는 경고(치명적이지 않은 오류)입니다. 🎜E_WARNING 🎜과 유사하지만 PHP 엔진 코어에 의해 생성됩니다. 🎜 |
PHP 4부터🎜🎜 | |||||||||||
치명적인 컴파일 시간 오류입니다. 🎜E_ERROR 🎜와 유사하지만 Zend 스크립트 엔진에 의해 생성됩니다. 🎜 |
PHP 4부터🎜🎜 | |||||||||||
컴파일 시간 경고(치명적이지 않은 오류). 🎜E_WARNING 🎜과 유사하지만 Zend 스크립트 엔진에 의해 생성됩니다. 🎜 |
PHP 4부터🎜🎜 | |||||||||||
사용자가 생성한 오류 메시지입니다. 🎜E_ERROR 🎜와 유사하지만 사용자가 코드에서 PHP 함수 🎜trigger_error()🎜를 사용합니다. 생성되었습니다. |
PHP 4부터 | |||||||||||
512 |
E_USER_WARNING E_USER_WARNING (integer) |
用户产生的警告信息。类似 E_WARNING , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。 |
since PHP 4 | |||||||||
1024 |
E_USER_NOTICE (integer) |
用户产生的通知信息。类似 E_NOTICE , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。 |
since PHP 4 | |||||||||
2048 |
E_STRICT (integer)
|
启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。 | since PHP 5 | |||||||||
4096 |
E_RECOVERABLE_ERROR (integer) |
可被捕捉的致命错误。 它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 如果该错误没有被用户自定义句柄捕获,将成为一个 E_ERROR 从而脚本会终止运行。 |
since PHP 5.2.0 | |||||||||
8192 | E_DEPRECATED (정수)사용자가 생성한 경고 메시지입니다. |
과 유사하지만 사용자는 코드 trigger_error()🎜를 생성합니다. 🎜🎜PHP 4 이후🎜🎜E_USER_NOTICE 🎜(integer🎜)🎜🎜사용자 생성 알림 정보. 🎜E_NOTICE 🎜와 유사하지만 사용자는 코드 trigger_error()🎜를 생성합니다. 🎜🎜PHP 4부터🎜🎜E_STRICT 🎜🎜 (정수)🎜🎜🎜코드 수정에 대한 PHP 제안을 활성화하여 코드의 최고의 상호 운용성과 향후 호환성을 보장합니다. 🎜🎜PHP 5부터🎜🎜E_RECOVERABLE_ERROR 🎜(integer🎜)🎜🎜 캡처 가능 치명적 오류. 잠재적으로 위험한 오류가 발생했지만 PHP 엔진이 불안정해지지는 않았음을 나타냅니다. 사용자 정의 처리기에 의해 오류가 포착되지 않으면 🎜E_ERROR 🎜이 되고 스크립트가 종료됩니다. 🎜🎜PHP 5.2.0부터🎜🎜E_DEPRECATED 🎜🎜(정수)🎜🎜🎜런타임 알림. 활성화되면 향후 버전에서 제대로 작동하지 않을 수 있는 코드에 대한 경고가 표시됩니다.PHP 5.3.0부터 |
16384 |
|
E_USER_DEPRECATED E_USER_DEPRECATED (integer)用户产少的警告信息。 类似 |
E_DEPRECATED , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。since PHP 5.3.0 |
30719 |
|
E_ALL (integer)
E_STRICT (integer)사용자에게 더 적은 양을 생성하라는 경고 메시지입니다. |
| 와 유사하지만 사용자는 코드 trigger_error()
E_DEPRECATED |
E_ALL
🎜 (정수)🎜🎜E_STRICT
🎜외출 시 모든 오류 및 경고 메시지. 🎜🎜PHP 5.3.x에서는 30719, PHP 5.2.x에서는 6143, 이전에는 2047🎜🎜🎜🎜PHP에서 오류 보고 수준을 설정하는 방법:
1. PHP 구성 파일 php.ini
를 수정합니다. 이렇게 error_reporting을 설정한 후 웹 서버를 다시 시작하면 영구적으로 적용됩니다.
구성 파일 php.ini를 열고 오류 보고 수준 error_reporting의 기본값을 다음과 같이 확인하세요.
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT1.
E_DEPRECATED 및 E_STRICT를 제외한 모든 오류를 보고한다는 뜻입니다.
다음으로 변경하세요.
error_reporting=E_ALL & ~E_NOTICE1.
E_NOTICE를 제외한 모든 오류를 보고한다는 의미입니다. 이는 가장 일반적으로 사용되는 오류 보고 수준이기도 하며, 주의 클래스의 오류(예: 정의되지 않은 변수 사용)를 보고하지 않습니다.
저장하면 웹 서버를 다시 시작한 후에 적용됩니다.
2. error_reporting() 함수를 사용하세요.
이렇게 설정하면 바로 적용됩니다. 그러나 현재 스크립트의 error_reporting() 함수 호출 뒤의 영역에서만 가능합니다.
int error_reporting ([ int $level ] )1.
매개변수는 정수 또는 해당 상수 식별자일 수 있습니다. 상수 형식을 사용하는 것이 좋습니다. 반환 값은 현재 위치에서 유효한 오류 보고 수준의 값(정수 값)입니다.
참고: php.ini 구성 파일에 있는 display_errors의 기본값은 On입니다. 이는 오류 프롬프트가 표시된다는 의미입니다. Off로 설정하면 모든 오류 프롬프트가 꺼집니다.
error_reporting(0)을 사용하거나 함수 앞에 @
를 추가하여 오류 출력을 억제하면 오류 메시지에서 민감한 정보가 유출되는 것을 방지할 수 있습니다.
매개변수 수준
새로운 오류 보고 수준. 비트마스크 또는 명명된 상수일 수 있습니다.
향후 버전과의 호환성을 보장하려면 명명된 상수를 사용하는 것이 좋습니다. 오류 수준이 추가되고 정수 값 범위가 증가함에 따라
이전 정수 기반 오류 수준이 항상 예상대로 작동하지는 않습니다.
레벨 가능한 값(PHP의 오류 보고 수준)
common: 총 약 15개
15개는 바이너리의 15비트에 정확히 해당합니다.
위 표의 필드는 정적이 아닙니다. PHP 버전에 따라 값이 다를 수 있습니다.
위 옵션 중 원하는 만큼 "OR"(OR 또는 | 사용)로 연결할 수 있습니다. 모든 수준에서 필요한 모든 오류를 보고할 수 있습니다.
예를 들어 다음 코드는 사용자 정의 오류 및 경고를 끄고 특정 작업을 수행한 다음 원래 오류 수준으로 돌아갑니다.
예:
<?php error_reporting(0); //禁用错误报告 error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误 error_reporting(E_ALL); //报告所有错误 error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置 error_reporting(-1); //报告所有 PHP 错误 error_reporting(3); //不报E_NOTICE error_reporting(11); //报告所有错误 ini_set('error_reporting', E_ALL); // 和 error_reporting(E_ALL); 一样 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。 ?>
변환 관계:
E_All: 십진수는 30719입니다. 이진수로 변환하면 111011111111111
E_NOTICE: 십진수는 8, 이진수로 변환하면 1000
~E_NOTICE: E_NOTICE를 무효화하고 0111
E_ALL & ~E_N OTICE::E가 됩니다. _ALL 및 ~E_NOTICE는 ANDed이고 111011111110111이 됩니다. 10진수로 환산하면 30711
E_ALL이 모든 오류를 표시하지 않는 것을 볼 수 있습니다. 12번째 비트는 0입니다. 이 비트의 가중치는 2의 11승, 즉 2048입니다. E_STRICT 값이므로 E_ALL은 E_STRICT를 제외한 모든 오류 수준을 표시합니다.
E_ALL & ~E_NOTICE는 오른쪽에서 왼쪽으로 이진수로 볼 수 있으며, 4번째와 12번째 비트는 0이고, 4번째 비트의 가중치는 2의 3승인 8이며, 이는 E_NOTICE이므로 E_STRICT 및 E_NOTICE를 제외한 모든 오류가 표시됩니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP의 오류 수준은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!