복붙노트

PHP 에서 오류 메세지 보기

PHP

PHP 에서 오류 메세지 보기

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가지가 있습니다.

  1. E_ERROR : 말 그대로 실행 오류입니다. 숫자 1입니다.
  2. E_WARNING : 경고입니다. 실행은 가능하지만 작동은 보장하지 못합니다. 숫자 2입니다.
  3. E_PARSE : 파서 오류입니다. php 구문이 잘못되었을 때 나옵니다. 숫자 4입니다.
  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