PHP 8.4: round() — неправильные режимы вызывают исключения
До версии PHP 8.4 при передаче неверного параметра режима округления по умолчанию использовался режим округления PHP_ROUND_HALF_UP
. В PHP 8.4 и более поздних версиях передача неверного режима округления приводит к исключению \ValueError
и больше не используется значение PHP_ROUND_HALF_UP
.
round(num: 3.14, mode: 42); // Неправильный параметр $mode
ValueError: round(): Argument #3 ($mode) must be a valid rounding mode (PHP_ROUND_*).
Влияние на обратную совместимость
Передача некорректного параметра $mode
в функцию round()
приводит к вызову исключения ValueError
в PHP 8.4 и более поздних версиях. Это сделано для того, для исправления возможного неожиданного поведения предыдущих версий PHP, предполагавших режим округления PHP_ROUND_HALF_UP
по умолчанию для неверных значений.
PHP-код, не передающий параметр $mode
в вызовы функции round вообще или передающий корректные значения параметров (константы PHP_ROUND_*
), не получит никаких изменений в функциональности. Любые PHP-приложения, получающие исключения, могут спокойно отказаться от дополнительного параметра, чтобы имитировать существующее поведение, не вызывая исключений.
-round(num: 3.14, mode: 42);
+round(num: 3.14);