이 경고가 해제되었는지 또는 set_error_handler() 함수를 사용하지 않았는지 확인할 수있는 방법이 있습니까? @somethingwrong() 및 somethingwrong()의 코드는 2입니다. 하지만 모든 경고를 기록하고 싶지는 않습니다. 예를 들어 gzuncompress()와 같은 일부 함수는 유효한 입력 데이터를 테스트 할 방법이 없으므로이 방법으로 처리해야합니다.로그인하지 마십시오. PHP 경고
$handler = new errorHandler();
error_reporting(0);
set_error_handler(array($handler, 'handle'));
set_exception_handler(array($handler, 'exception'));
register_shutdown_function(array($handler, 'shutdown'));
class errorHandler
{
public function handle($code, $text, $file, $line)
{
if (($code & (E_STRICT | E_NOTICE)) == 0)
$this->log(...);
}
public function exception($exception)
{
...
}
public function shutdown()
{
$e = error_get_last();
if ($e !== NULL)
$this->log($error);
}
}
// the errors
include('notexisting.file'); // should be logged
@gzuncompress('somenonsens'); // should not be logged
어떤 "이 경고"를 표시하지 않으시겠습니까? error_reporting (0)을 사용하면 오류보고를 비활성화합니다. 아마도 error_reporting (-1) 또는 그와 비슷한 의미일까요? 어떤 코드가 @somethingwrong()에 2입니까? 귀하의 질문을 명확히하십시오. – tomsv
php.net 코드 2에서 볼 수 있듯이 E_PARSE에 대해 E_WARNING 2, E_PARSE 4에 대해 ... 사용 안함이라고 말하면 왜 여전히 모든 오류를 기록합니까? 그러나 오류 표시가 꺼졌습니다. 이제 ini_set ('display_errors', 'Off');라고 썼습니다. error_reporting (-1); 효과는 같습니다. – user2381982