diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 8cee5a6ba0a..67a6d0ca6d2 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2931,8 +2931,16 @@ function msg_handler($errno, $msg_text, $errfile, $errline): bool global $phpbb_root_path, $msg_title, $msg_long_text, $phpbb_log; global $phpbb_container; + // https://www.php.net/manual/en/language.operators.errorcontrol.php + // error_reporting() return a different error code inside the error handler after php 8.0 + $suppresed = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE; + if (PHP_VERSION_ID < 80000) + { + $suppresed = 0; + } + // Do not display notices if we suppress them via @ - if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE) + if (error_reporting() == $suppresed && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE) { return true; } diff --git a/phpBB/install/startup.php b/phpBB/install/startup.php index 71f5744678f..b8ceb373429 100644 --- a/phpBB/install/startup.php +++ b/phpBB/install/startup.php @@ -51,7 +51,15 @@ function installer_msg_handler($errno, $msg_text, $errfile, $errline): bool { global $phpbb_installer_container, $msg_long_text; - if (error_reporting() == 0) + // Acording to https://www.php.net/manual/en/language.operators.errorcontrol.php + // error_reporting() return a different error code inside the error handler after php 8.0 + $suppresed = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE; + if (PHP_VERSION_ID < 80000) + { + $suppresed = 0; + } + + if (error_reporting() == $suppresed) { return true; }