>  기사  >  백엔드 개발  >  PHP에서 오류 수준을 설정하는 방법은 무엇입니까?

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

怪我咯
怪我咯원래의
2017-04-28 16:11:496847검색

프로그램 개발 중에 일부 프로그램 실행 오류가 자주 발생합니다. 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 매개변수에 제공된 값입니다.

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

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