PHP 에서 오류 메세지 보기
PHPPHP 에서 오류 메세지 보기
ini_set('display_startup_errors', true);
ini_set('display_errors', true);
error_reporting(E_ALL);
display_startup_errors
display_startup_errors 는 php 시작시 오류가 나면 표시하라는 뜻입니다.
display_errors
display_errors 는 php를 실행하다가 오류가 나면 표시하라는 뜻입니다.
error_reporting
오류를 표시하기로 했을 때, 어느 수준의 오류까지 표시할 것인가를 설정합니다.
오류에는 총 4가지가 있습니다.
- E_ERROR : 말 그대로 실행 오류입니다. 숫자 1입니다.
- E_WARNING : 경고입니다. 실행은 가능하지만 작동은 보장하지 못합니다. 숫자 2입니다.
- E_PARSE : 파서 오류입니다. php 구문이 잘못되었을 때 나옵니다. 숫자 4입니다.
- E_NOTICE : 알림입니다. 무시하셔도 됩니다. 숫자 8입니다.
E_ALL : E_ALL 은 모든 오류를 표시하라는 뜻입니다. 숫자 32767 입니다.
숫자를 표기해 둔 이유는 error_reporting 함수는 비트 마스크 연산을 하기 때문입니다.
즉 동시에 여러 경고를 쓸 수 있다는 뜻이죠.
사용법
모든 에러 끄기
error_reporting(0);
모든 에러 보이기
error_reporting(E_ALL);
에러, 경고, 파서 오류만 보이기
error_reporting(E_ERROR | E_WARNING | E_PARSE);
모든 에러가 보이지만 알림은 무시하기
error_reporting(E_ALL & ~E_NOTICE);
실전
실전에서는 저런 코드를
user.php
error_reporting(E_ALL);
이런식으로 쓰지는 않습니다.
왜냐하면 사용자에게 에러 메세지를 보여서 좋을 게 없거든요.
그래서 보통은 이런 식으로 씁니다.
settings.php
$is_debug = true;
if $(is_debug){
error_reporting(E_ALL);
}
user.php
require_once('settings.php');
개발 환경에서는 $is_debug=True
로 맞춰서 불편함이 없게 하고 대신 실제 운영 환경에서는 $is_debug=false
로 한번에 제어할 수 있게 합니다.
'PHP' 카테고리의 다른 글
PHP JSON 다루기 (0) | 2017.11.14 |
---|---|
PHP 배열 정렬하기 (0) | 2017.11.14 |
PHP 타임존 설정 (0) | 2017.11.13 |
PHP에서 날짜 및 시간 다루기 (0) | 2017.11.12 |
PHP Headers already sent 오류 (0) | 2017.11.12 |