if ( 0 === error_reporting() && 0 !== $this->error_reporting ) {
// This is most likely an @-suppressed error
$error_group = 'suppressed';
}
On PHP8+, error_reporting never return 0.
Warning
Prior to PHP 8.0.0, the error_reporting() called inside the custom error handler always returned 0 if the error was suppressed by the @ operator. As of PHP 8.0.0, it returns the value E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE.
This condition will never return
true
,On PHP8+,
error_reporting
never return0
.See: https://www.php.net/manual/en/language.operators.errorcontrol.php
This causes suppressed errors to be reported as actual errors.
Instead, something like this should be used: