error_reporting(0)에도 불구하고 PHP가 오류를 표시하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/78296

  •  09-06-2019
  •  | 
  •  

문제

비활성화하라고 지시한 것과 상관없이 PHP가 강제로 오류를 표시하는 이유는 무엇입니까?

나는 시도했다

error_reporting(0);
ini_set('display_errors', 0); 

운없이.

도움이 되었습니까?

해결책

설명서의 주의 사항을 참고하세요. http://uk.php.net/error_reporting:

대부분의 E_STRICT 오류는 컴파일 타임에 평가되므로 이러한 오류는 E_STRICT 오류를 포함하도록 error_reporting이 향상된 파일에 보고되지 않습니다(그 반대의 경우도 마찬가지).

기본 시스템이 E_STRICT 오류를 보고하도록 구성된 경우 코드가 고려되기도 전에 이러한 오류가 출력될 수 있습니다.error_reporting/ini_set은 런타임 평가이며 "실행 전" 단계에서 수행되는 모든 작업은 해당 효과를 볼 수 없다는 점을 잊지 마십시오.


귀하의 오류가 다음과 같다는 귀하의 의견에 따르면 ...

구문 분석 오류:구문 오류, 예상치 못한 t_variable, 기대 ','또는 ';' 11 행에서 /usr/home/redacted/public_html/dev.php에서

그러면 동일한 일반 개념이 적용됩니다.귀하의 코드는 구문상 유효하지 않기 때문에 실행되지 않습니다(';'를 잊어버렸습니다).따라서 오류 보고 변경 사항이 발생하지 않습니다.

이 문제를 해결하려면 시스템 수준 오류 보고를 변경해야 합니다.예를 들어, Apache에서는 다음을 배치할 수 있습니다.

php_value 오류_보고 0

.htaccess 파일에서 모두 억제하지만 이는 시스템 구성에 따라 다릅니다.

실질적으로 구문 오류가 있는 파일을 작성하지 마세요. :)

다른 팁

오류가 표시되는 것을 방지하려면 다음을 수행하십시오.

  • .htaccess로 작성: php_flag 디스플레이_오류 0
  • 메인 (부모) PHP 파일이 error_logging 만 설정 한 다음 다른 파일을 포함시키는 별도의 모듈로 코드를 분할하십시오.

사용 phpinfo 로드된 php.ini를 찾아 편집하여 오류를 숨깁니다.이는 스크립트에 입력한 내용보다 우선합니다.

~이다 set_error_handler() 스크립트의 어느 곳에서나 사용되었나요?이는 재정의됩니다. error_reporting(0).

표시하는 대신 로그에 기록하려면 log_errors를 사용하세요.

php_admin_value를 사용하여 Apache에서 설정이 지정된 경우 .htaccess 또는 런타임에서 변경할 수 없습니다.보다: http://docs.php.net/configuration.changes

실질적으로 구문 오류가 있는 파일을 작성하지 마세요. :)

파일에 구문 오류가 없는지 확인하려면 다음을 실행하세요.

php -l YOUR_FILE_HERE.php

그러면 다음과 같이 출력됩니다.

PHP Parse error:  syntax error, unexpected '}' in Connection.class.php on line 31

아래 코드를 index.php 파일:

ini_set('display_errors', False);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top