> 백엔드 개발 > PHP 문제 > PHP에서 오류 수준을 수정하는 방법

PHP에서 오류 수준을 수정하는 방법

青灯夜游
풀어 주다: 2023-03-09 22:04:01
원래의
2873명이 탐색했습니다.

수정 방법: 1. php.ini에서 "error_reporting" 항목의 값을 찾아 수정한 후 웹 서버를 다시 시작합니다. 2. PHP 파일에서 "error_reporting(level)" 문을 사용하여 수정합니다. 매개변수 level은 현재 스크립트의 오류 보고 수준을 지정하는 데 사용됩니다.

PHP에서 오류 수준을 수정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

오류 보고 수준: 어떤 상황에서 스크립트 코드의 오류가 발생하는지 지정합니다. 여기서 오류는 E_NOTICE, E_WARNING을 포함한 광범위한 오류입니다. , E_ERROR 치명적인 오류 등)이 오류 보고서 형식으로 출력됩니다.

php

1. PHP 구성 파일 php.ini를 수정하세요

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

저장하면 웹 서버를 다시 시작한 후에 적용됩니다.

2. error_reporting() 함수를 사용하세요.

이렇게 설정하면 바로 적용됩니다. 그러나 현재 스크립트의 error_reporting() 함수 호출 뒤의 영역에서만 가능합니다.

error_reporting(level)
로그인 후 복사

level 매개변수는 현재 스크립트의 오류 보고 수준을 지정하며 생략 가능합니다. 값 번호와 상수 이름 모두 허용되지만 향후 PHP 버전과의 호환성을 위해 상수 이름을 사용하는 것이 좋습니다.

레벨 매개변수는 정수 또는 해당 상수 식별자일 수 있습니다. 상수 형식을 사용하는 것이 좋습니다. 반환 값은 현재 위치에서 유효한 오류 보고 수준의 값(정수 값)입니다.

다음은 몇 가지 오류 보고 수준입니다.

ConstantDescription
1E_ERROR 런타임에 치명적인 오류가 발생했습니다. 수정할 수 없는 오류입니다. 스크립트 실행을 중지합니다.
2E_WARNING런타임에 치명적이지 않은 오류가 발생했습니다. 스크립트 실행이 중지되지 않습니다.
4E_PARSE컴파일 중 구문 분석 오류가 발생했습니다. 구문 분석 오류는 구문 분석기에 의해서만 생성되어야 합니다.
8E_NOTICE런타임 알림. 스크립트 검색은 버그일 수 있지만 스크립트를 정상적으로 실행할 때도 발생할 수 있습니다.
16E_CORE_ERRORPHP를 시작할 때 치명적인 오류가 발생했습니다. 이는 PHP 코어의 E_ERROR와 같습니다.
32E_CORE_WARNINGPHP 시작 시 치명적이지 않은 오류가 발생했습니다. 이는 PHP 코어의 E_WARNING과 같습니다.
64E_COMPILE_ERROR 컴파일 중 치명적인 오류가 발생했습니다. 이는 Zend 스크립팅 엔진에서 생성된 E_ERROR와 같습니다.
128E_COMPILE_WARNING컴파일 중 치명적이지 않은 오류가 발생했습니다. 이는 Zend 스크립팅 엔진에서 생성된 E_WARNING과 같습니다.
256E_USER_ERROR사용자가 생성한 치명적인 오류입니다. 이는 프로그래머가 PHP 함수 Trigger_error()를 사용하여 생성한 E_ERROR와 같습니다.
512E_USER_WARNING 사용자가 생성한 치명적이지 않은 오류입니다. 이는 프로그래머가 PHP 함수 Trigger_error()를 사용하여 생성한 E_WARNING과 같습니다.
1024E_USER_NOTICE사용자 생성 알림. 이는 프로그래머가 PHP 함수 Trigger_error()를 사용하여 생성한 E_NOTICE와 같습니다.
2048E_STRICT실행 시 알림. PHP는 코드 상호 운용성과 호환성을 향상시키기 위해 코드를 변경할 것을 권장합니다.
4096E_RECOVERABLE_ERROR캐치 가능한 치명적인 오류입니다. 이는 사용자 정의 핸들(set_error_handler() 참조)에 의해 포착될 수 있는 E_ERROR와 같습니다.
8191E_ALLE_STRICT를 제외한 모든 오류 및 경고 수준(PHP 6.0부터 E_STRICT는 E_ALL의 일부가 됩니다).

示例:

error_reporting(E_ALL ^ E_NOTICE);    // 除了E_NOTICE之外,报告所有的错误
error_reporting(E_ERROR);       // 只报告致命错误
echo error_reporting(E_ERROR | E_WARNING | E_NOTICE);   // 只报告E_ERROR、E_WARNING 和 E_NOTICE三种错误
로그인 후 복사

注意:配置文件php.ini中display_errors的默认值为On,代表显示错误提示,如果设置为Off,就会关闭所有的错误提示。

使用 error_reporting(0) 或者在函数前面加 @,可以抑制错误输出,以防止错误消息泄露敏感信息。 

推荐学习:《PHP视频教程

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

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