예:
Windows 환경: 원래 php4.3.0에서 정상적으로 실행되던 프로그램이 4.3.1에서 보고되는 오류가 많은 이유는 무엇입니까? 일반적인 프롬프트는 다음과 같습니다. 주의: 정의되지 않은 변수:
의 경우. 예를 들어 다음과 같은 코드가 있습니다.
코드 복사 코드는 다음과 같습니다.
if (!$tmp_i) {
$tmp_i=10;
}
은 4.3.0에서 정상적으로 실행되지만 4.3.1에서 실행 시 알림: 정의되지 않은 변수: tmp_i
다음과 같은 문제가 발생합니다.
1. 문제는 어디에 있나요?
2. 이 코드는 어떻게 수정해야 하나요?
3. 코드를 변경하지 않고 4.3.0의 원본 프로그램이 4.3.1 환경에서 정상적으로 실행될 수 있도록 php.ini의 설정을 수정하는 방법은 무엇입니까?
해결책:
프로그램 시작 부분에 문장 추가:
error_reporting(E_ALL & ~E_NOTICE); 또는 error_reporting(E_ALL ^ E_NOTICE)
또는
php.ini 수정
error_reporting = E_ALL & ~E_NOTICE
error_reporting() 함수 정보:
error_reporting()은 PHP의 오류 수준을 설정하고 현재 수준을 반환합니다.
; 오류 보고는 비트 단위입니다. 또는 원하는 오류 보고 수준을 얻으려면 숫자를 더하세요.
; E_ALL - 모든 오류 및 경고
E_ERROR - 치명적인 런타임 오류
E_WARNING - 런타임 경고(치명적이지 않은 오류)
E_NOTICE - 런타임 알림(이는 종종 코드의 버그로 인해 발생합니다.
; 의도적인 동작으로 인해 발생할 수도 있습니다. (예: 초기화되지 않은 변수를
로 자동 초기화; null 문자열 사실)
; E_CORE_ERROR - PHP 시작 시 초기화 과정에서 발생하는 치명적인 오류
; E_CORE_WARNING - PHP 시작 시 초기화 과정에서 발생하는 경고(치명적이지 않은 오류)
E_COMPILE_ERROR - 치명적인 컴파일 시간 오류
; E_COMPILE_WARNING - 컴파일 시간 경고(치명적이지 않은 오류)
; E_USER_ERROR - 사용자 생성 오류 메시지
E_USER_WARNING - 사용자 생성 경고 메시지
사용법 :
error_reporting(0);//오류 보고 비활성화
error_reporting(E_ALL ^ E_NOTICE);//E_NOTICE를 제외한 모든 오류 메시지 표시
error_reporting(E_ALL^E_WARNING^E_NOTICE);//모두 표시 E_WARNING E_NOTICE
error_reporting(E_ERROR | E_WARNING | E_PARSE);//error_reporting(E_ALL ^ E_NOTICE)과 동일하게 런타임 오류를 표시합니다. error_reporting(E_ALL);//모든 오류를 표시합니다. .
이상은 nortonpartitionmagic의 내용을 포함하여 nortonpartitionmagic PHP 함수의 error_reportingE_ALL ^ E_NOTICE에 대한 자세한 설명을 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.