경고: 생산환경에 어떠한 오류도 표시해서는 안 됩니다.
오류 보이기( 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 (int)eger) PHP에 의한 코드 수정 제안,코드의 상호운용성 및 전방위 호환성을 최적으로 보장한다.
E_ALL (intege)r) E_STRICT 이외의 모든 오류와 경고정보。
E_ERROR (inte)ger) 치명적인 런타임 오류.이러한 오류는 일반적으로 메모리 할당으로 인한 문제 등과 같이 복구할 수 없는 경우이다.결과적으로 스크립트가 종료되어 더 이상 실행되지 않게 됩니다.
E_WARNING (in)teger) 런타임 경고 (치명적이지 않은 오류). 프롬프트만 표시되지만 스크립트는 실행을 중지하지 않습니다.
E_PARSE (inte)ger) 구문 분석 오류입니다.해석 오류는 분석기에서만 발생합니다.
E_NOTICE (int)eger) 런타임 알림.스크립트가 발생할 수 있음을 나타냅니다.잘못된 경우로 나타나지만 정상적으로 동작할 수 있는 스크립트 안에도 비슷한 알림이 있을 수 있습니다.
코드에서 표시 단계 열기 및 설정
ini_set() 함수
PHP의 경우 p를 통해hp.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
개발 단계에서 E_NOTICE 표시 사용 권장더 많은 오류.
<?php
// 모든 PHP 오류 보고서 닫기, 해당 ini_set('error_reporting', 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('error_reporting', E_ALL);
php.ini 프로필 수정
error_reporting = E_ALL # 모든 오류 보고
display_errors = On #오류 표시
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHP/HTML 혼서의 네 가지 방식 (0) | 2022.07.13 |
---|---|
php 502 bad gateway 해결 방법 (0) | 2022.07.13 |
PHP 밑바닥을 탐구하다 (0) | 2022.07.13 |
PHP 쾌속 정거장 건설의 6가지 단계를 자세히 설명하다 (0) | 2022.07.12 |
PHP CLI 모드 설명 (0) | 2022.07.12 |