PHP에서 오류 수준을 설정하는 방법은 무엇입니까?

怪我咯
풀어 주다: 2023-03-07 17:08:01
원래의
6918명이 탐색했습니다.

프로그램 개발 중에 일부 프로그램 실행 오류가 자주 발생합니다. PHP는 프로그램의 오류 수준에 따라 다른 프롬프트를 표시합니다. 예를 들어 경고, 오류 등이 있지만 이러한 오류가 작은 오류인 경우 이러한 오류가 보고되지 않도록 할 수 있습니다. 이를 위해서는 이 장에서 설명한 대로 PHP의 오류 수준을 설정하는 방법을 사용해야 합니다.

PHP에서는 오류 수준을 설정하는 방법이 두 가지가 있습니다.

첫 번째 방법: 이런 방식으로 error_reporting을 설정한 후 웹 서버를 다시 시작하면 시간이 걸립니다. 영구적으로 효과가 있습니다.

여기에서는 xampp 통합 소프트웨어 패키지를 예로 들어 php.ini 구성 파일을 열고 다음과 같이 오류 보고 수준 error_reporting의 기본값을 확인합니다.

error_reporting=E_ALL & ~ E_DEPRECATED & ~E_STRICT

는 E_DEPRECATED 및 E_STRICT를 제외한 모든 오류를 보고하는 것을 의미합니다.

수정:

error_reporting=E_ALL & ~E_NOTICE

E_NOTICE를 제외한 모든 오류를 보고한다는 의미입니다. 이는 가장 일반적으로 사용되는 오류 보고 수준이기도 하며, 주의 클래스의 오류(예: 정의되지 않은 변수 사용)를 보고하지 않습니다.

저장하고 웹 서버를 다시 시작해야 적용됩니다.

둘째: error_reporting() 함수를 통해 오류 보고 수준을 설정합니다. 이렇게 설정하면 즉시 적용됩니다. 그러나 현재 스크립트의 error_reporting() 함수 호출 뒤의 영역에서만 가능합니다.

error_reporting() 함수의 구문은 다음과 같습니다.

int error_reporting ([ int $level ] )
로그인 후 복사

level 매개변수는 오류 수준을 지정합니다. 설정하지 않으면 현재 오류 수준이 반환됩니다. 다음은 level 매개변수에 제공된 값입니다.

상수설명
1E_ERROR 종료할 스크립트 오류
常量说明
1E_ERROR报告导致脚本终止运行的致命错误
2E_WARNING报告运行时的警告类错误(脚本不会终止运行)
4E_PARSE报告编译时的语法解析错误
8E_NOTICE报告通知类错误,脚本可能会产生错误
16E_CORE_ERRORPHP启动时初始化过程中的致命错误。
32E_CORE_WARNINGPHP启动时初始化过程中的警告(非致命性错)。
64E_COMPILE_ERROR编译时致命性错。这就像由Zend脚本引擎生成了一个E_ERROR。
128E_COMPILE_WARNING编译时警告(非致命性错)。这就像由Zend脚本引擎生成了一个E_WARNING警告。
256E_USER_ERROR用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
512 E_USER_WARNING用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
1024E_USER_NOTICE用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
2048E_STRICT编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
4096E_RECOVERABLE_ERROR开捕致命错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())
8191E_ALL所有的错误和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)
2 E_WARNING런타임 중 경고 오류 보고(스크립트는 실행을 종료하지 않음)
4E_PARSE컴파일 시간 구문 분석 오류 보고< /td>< /tr>
8E_NOTICE알림 오류 보고, 스크립트에서 오류가 발생할 수 있음
16E_CORE_ERRORPHP 시작 시 초기화 과정 중 치명적인 오류가 발생했습니다.
32E_CORE_WARNINGPHP 시작 시 초기화 프로세스 중 경고(치명적이지 않은 오류)가 발생합니다.
64E_COMPILE_ERROR치명적인 컴파일 시간 오류가 발생했습니다. 이는 Zend 스크립팅 엔진에 의해 생성되는 E_ERROR와 같습니다.
128E_COMPILE_WARNING컴파일 시간 경고(치명적이지 않은 오류). 이는 Zend 스크립트 엔진에서 생성된 E_WARNING 경고와 같습니다.
256E_USER_ERROR사용자 정의 경고 메시지입니다. 이는 PHP 함수 Trigger_error(프로그래머가 설정한 E_WARNING 경고)를 사용하는 것과 같습니다.
512 E_USER_WARNING사용자 정의 경고 메시지입니다. 이는 PHP 함수 Trigger_error(프로그래머가 설정한 E_WARNING 경고)를 사용하는 것과 같습니다.
1024E_USER_NOTICE사용자 정의 경고 메시지입니다. 이는 PHP 함수 Trigger_error(프로그래머가 설정한 E_WARNING 경고)를 사용하는 것과 같습니다.
2048E_STRICT인코딩 표준화 경고. 최적의 상호 운용성과 향후 호환성을 보장하기 위해 PHP가 코드 수정 방법을 제안할 수 있습니다.
4096E_RECOVERABLE_ERROR치명적인 오류를 캡처합니다. 이는 E_ERROR와 유사하지만 사용자 정의 핸들러(set_error_handler() 참조)를 통해 포착할 수 있습니다.
8191 E_ALL모든 오류 및 경고(E_STRICT 제외)(E_STRICT는 PHP부터 E_ALL의 일부가 됨) 6.0)

PHP에서 오류 수준을 설정하는 방법은 무엇입니까? 任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。

例子:

下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

<?php
//禁用错误报告
error_reporting(0);

//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误
error_reporting(E_ALL);
?>
로그인 후 복사

一个简单的例子是:

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

他表示php错误,警告,语法错误,提醒都返错。

위 내용은 PHP에서 오류 수준을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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