39、PHP 8.4 方法或功能修改 - round 函数 无效的舍入模式会引发 ValueError 异常
round()
函数将浮动值四舍五入到最接近的整数或指定精度的小数值。它支持通过额外的参数来微调四舍五入的方法。
在 PHP 8.4 之前,如果传递了一个无效的四舍五入模式参数,PHP 会默认为 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_*)
向后兼容性影响
在 PHP 8.4 及之后的版本中,如果向 round()
函数传递了无效的 $mode
参数,将抛出一个 ValueError
异常。这是为了纠正之前 PHP 版本中对于无效值默认使用 PHP_ROUND_HALF_UP
四舍五入模式的可能意外行为。
对于那些没有传递 $mode
参数给 round()
函数,或者传递了正确参数值(如 PHP_ROUND_*
常量)的 PHP 代码,将不会出现功能上的变化。任何收到异常的 PHP 应用程序可以安全地去掉额外的参数,以模仿现有行为,而不会引发异常。
示例:
round(num: 3.14, mode: 42); // 会抛出异常
round(num: 3.14); // 不会有异常
请登录后再评论