PHP 8.4 : round() - 无效的取整模式抛出 \ValueError 异常
round() 函数对浮点值取整到最近的整数,或者指定精度的小数。它支持使用额外参数微调取整方法。
在 PHP 8.4 之前,传递无效的取整模式参数时,将静默地假定默认使用 PHP_ROUND_HALF_UP 取整模式。在 PHP 8.4 及更高版本中,传递无效的舍入模式会导致 \ValueError 异常,并且不再假定为 PHP_ROUND_HALF_UP。
round(num: 3.14, mode: 42); // Invalid $mode parameterValueError: round(): Argument #3 ($mode) must be a valid rounding mode (PHP_ROUND_*).Related Change相关
- PHP 8.4:
round()函数新增取整模式
后向兼容性影响
将无效的 $mode 参数传递给 round() 函数会导致在 PHP 8.4 及更高版本中引发 ValueError 异常。这是为了纠正以前的 PHP 版本中可能出现的意外行为,这些版本假定在无效值时使用默认的 PHP_ROUND_HALF_UP 舍入模式。
不向 round 函数调用传递 $mode 参数或传递正确参数值(PHP_ROUND_* 常量)的 PHP 代码将不会看到任何功能更改。任何接收到异常的 PHP 应用都可以安全地删除额外的参数,以模仿现有的行为,而不会导致异常。
- round(num: 3.14, mode: 42);
+ round(num: 3.14);