상세 컨텐츠

본문 제목

error_reporting

PROGRAM/SERVER

by 소이큰 2023. 12. 11. 12:47

본문

error_reporting은 PHP에서 어떤 종류의 에러 메시지를 표시할 것인지에 대한 설정입니다.

error_reporting 은 각 에러 레벨에 해당하는 상수들의 비트 연산으로 표현됩니다.

예를 들어, E_ALL은 모든 에러 레벨을 나타내는 상수이고, E_WARNING은 경고 수준의 에러를 나타내는 상수입니다.

따라서 error_reporting에 E_ALL & ~E_WARNING을 설정하면, E_WARNING을 제외한 모든 에러 메시지가 표시됩니다.

 

php.ini 에 보면 아래와 같이 숫자로 22527 이렇게 설정된 경우를 볼수있습니다.

 

또는 .heaccess 파일에서 아래와 같이 설정된것도 볼수가 있습니다.

php_value error_reporting 6135

 

 

아래는 이처럼 숫자로 설정된 error_reporting 의 차이를 비교합니다.

error_reporting 6135와 error_reporting 22527은 다음과 같이 비교할 수 있습니다.

error_reporting 6135는 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED와 같습니.

즉, E_NOTICE, E_STRICT, E_DEPRECATED를 제외한 모든 에러 메시지가 표시됩니다


error_reporting 22527는 E_ALL & ~E_DEPRECATED와 같습니다.

즉, E_DEPRECATED를 제외한 모든 에러 메시지가 표시됩니다


따라서 error_reporting 6135와 error_reporting 22527의 차이점은 E_NOTICE와 E_STRICT 에러 메시지의 표시 여부입니다. 

error_reporting 6135는 이 두 에러 레벨을 표시하지 않지만, error_reporting 22527은 표시합니다.

 

PHP에서 에러 레벨을 설정하는 것은 개발 환경과 서비스 환경에 따라 다를 수 있습니다.
일반적으로 개발 과정에서는 모든 에러 메시지를 보는 것이 좋고, 서비스 중이라면 왠만한 에러는 보이지 않는 것이 좋습니다
따라서, error_reporting 6135와 error_reporting 22527 중에 어떤 것을 쓰는 것이 좋은지는 상황에 따라 다르다고 할 수 있습니다.

 

더보기

[error_reporting 6135]

error_reporting 6135는 E_NOTICE와 E_STRICT 에러 메시지를 표시하지 않습니다. 
E_NOTICE는 변수가 정의되지 않았거나, 배열의 인덱스가 존재하지 않는 경우와 같은 사소한 문제를 알려주는 에러 레벨입니다.
E_STRICT는 PHP의 코딩 표준과 호환성을 위해 권장되는 코드 작성 방식을 알려주는 에러 레벨입니다
이 두 에러 레벨은 심각한 오류는 아니지만, 코드의 품질과 성능을 향상시키는 데 도움이 될 수 있습니다.
따라서 개발 단계에서는 error_reporting 6135보다는 error_reporting 22527을 쓰는 것이 좋을 수 있습니다.

 

더보기

[error_reporting 22527]

error_reporting 22527은 E_DEPRECATED 에러 메시지를 표시하지 않습니다.
E_DEPRECATED는 PHP의 향후 버전에서 사용되지 않을 것이라고 예상되는 기능이나 문법을 알려주는 에러 레벨입니다.
이 에러 레벨은 PHP의 업데이트에 대비하는 데 도움이 될 수 있습니다.
따라서 서비스 단계에서는 error_reporting 22527보다는 error_reporting 6135를 쓰는 것이 좋을 수 있습니다.

결론적으로, error_reporting 6135와 error_reporting 22527은 각각의 장단점이 있으므로, 원하는 에러 메시지의 종류와 수준에 따라 선택하면 됩니다.

 

 

PHP의 error_reporting() 함수를 사용하여 오류 보고 레벨을 변경할 수 있습니다.

다음과 같이 사용하면 'Undefined index'와 같은 Notice 에러를 무시할 수 있습니다.
error_reporting(E_ALL & ~E_NOTICE);

다음과 같이 사용하면 WARNING 레벨의 에러를 무시할 수 있습니다.
error_reporting(E_ALL & ~E_WARNING);

'PROGRAM > SERVER' 카테고리의 다른 글

Fatal error: Call to undefined function imagecreatetruecolor()  (1) 2023.12.11

관련글 더보기