>  기사  >  백엔드 개발  >  php.ini 오류 보고를 설정하는 방법

php.ini 오류 보고를 설정하는 방법

藏色散人
藏色散人원래의
2021-03-05 17:58:183239검색

php.ini 오류 보고 설정 방법: 먼저 php.ini 구성 파일을 찾아서 연 다음 내용을 "error_reporting=E_ALL display_errors=On"으로 설정하세요.

php.ini 오류 보고를 설정하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP 오류 표시를 켜고 오류 보고 수준을 설정합니다.

경고: 없음 프로덕션 환경에 표시합니다. 오류 메시지가 표시됩니다!

Display_errors와 error_reporting은 서로 다른 두 가지입니다. PHP 스크립트에서 오류가 발생하면 설정에 따라 오류를 보고(오류 로그에 기록)할지 여부를 선택할 수 있습니다. 설정에서 display_errors가 켜져 있으면 오류 메시지가 화면에 인쇄됩니다. 같은 시간.

프로젝트에서 일반적으로 사용되는 설정

switch (ENVIRONMENT)
{
    // 对于开发环境,报告所有错误,同时显示到屏幕上
    case 'development':
        error_reporting(-1);
        ini_set('display_errors', 1);
    break;

    // 对于测试和生产环境,不显示错误,5.3 以上的版本,不报告通知、废弃方法、严格这几类错误
    case 'testing':
    case 'production':
        ini_set('display_errors', 0);
        if (version_compare(PHP_VERSION, '5.3', '>='))
        {
            error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
        }
        else
        {
            error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
        }
    break;

    default:
        header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
        echo 'The application environment is not set correctly.';
        exit(1); // EXIT_ERROR
}

PHP 사전 정의된 오류 상수

공식 웹사이트는 모든 오류 상수를 정의하며 일반적으로 사용되는 상수는 다음과 같습니다.

  • E_STRICT(정수) 최적의 코드를 보장하기 위한 코드 수정을 위한 PHP 제안 상호 운용성 및 향후 호환성.
  • E_ALL(정수) E_STRICT를 제외한 모든 오류 및 경고 메시지입니다.
  • E_ERROR(정수) 치명적인 런타임 오류입니다. 이러한 유형의 오류는 일반적으로 메모리 할당으로 인해 발생하는 문제와 같이 복구할 수 없는 상황입니다. 결과적으로 스크립트가 종료되고 더 이상 실행되지 않습니다.
  • E_WARNING (정수) 런타임 경고(치명적이지 않은 오류). 프롬프트 메시지만 제공되고 스크립트는 종료되지 않습니다.
  • E_PARSE(정수) 컴파일 시간 구문 분석 오류입니다. 구문 분석 오류는 구문 분석기에 의해서만 생성됩니다.
  • E_NOTICE(정수) 런타임 알림. 스크립트가 오류로 나타날 수 있는 상황에 직면했지만 정상적으로 실행될 수 있는 스크립트에 유사한 알림이 있을 수도 있음을 나타냅니다.

코드에서 표시 수준 활성화 및 설정

ini_set() 함수

PHP의 경우 php.ini 파일을 통해 다양한 명령을 설정할 수 있습니다. 하지만 때로는 스크립트가 실행 중일 때 지침을 설정해야 할 경우 ini_set() 함수가 필요합니다. php.ini 文件设置各种指令。但有时候需要在脚本运行时设置指令,那就需要 ini_set() 函数了。

string ini_set ( string $varname , string $newvalue )

设置指定配置选项的值。这个选项会在脚本运行时保持新的值,并在脚本结束时恢复。

例如:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'on');

error_reporting() 函数

error_reporting() 函数能够在运行时设置 error_reporting 指令。 PHP 有诸多错误级别,使用该函数可以设置在脚本运行时的级别。如果没有设置可选参数, error_reporting() 会返回当前的错误报告级别。

PHP7.2 的默认值为 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

<?php

// 关闭所有PHP错误报告,相当于 ini_set(&#39;error_reporting&#39;, 0);
error_reporting(0);

error_reporting(E_ERROR | E_WARNING | E_PARSE);

// 报告 E_NOTICE  (报告未初始化的变量或捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// 除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);

// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);

// 报告所有 PHP 错误
error_reporting(-1);

// 和 error_reporting(E_ALL); 一样
ini_set(&#39;error_reporting&#39;, E_ALL);

지정된 구성 옵션의 값을 설정합니다. 이 옵션은 스크립트가 실행되는 동안 새 값을 유지하고 스크립트가 끝나면 복원됩니다.

예:

error_reporting = E_ALL # 报告所有错误
display_errors = On # 显示错误
error_reporting() 함수

error_reporting() 이 함수는 런타임에 error_reporting 지시어를 설정할 수 있습니다. PHP에는 많은 오류 수준이 있습니다. 이 함수를 사용하여 스크립트가 실행될 때 수준을 설정합니다. 선택적 인수가 설정되지 않은 경우 error_reporting()은 현재 오류 보고 수준을 반환합니다.

PHP7.2의 기본값은 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED입니다. 🎜🎜더 많은 오류를 표시하려면 개발 단계에서 E_NOTICE를 활성화하는 것이 좋습니다. 🎜rrreee🎜🎜php.ini 구성 파일 수정🎜🎜rrreee🎜[권장 학습: "🎜PHP 비디오 튜토리얼🎜"]🎜

위 내용은 php.ini 오류 보고를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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