已弃用:必需参数 $xxx 在可选参数 $yyy 之后...
自从升级到 PHP 8.0 后,运行以下代码时会抛出此错误:
function test_function(int $var1 = 2, int $var2) {
return $var1 / $var2;
}
在过去的 PHP 版本中,这个是没有问题的。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
没有默认值的必需参数应该放在前面。
function test_function(int $xxx, int $yyy = 2) { return $xxx * $yyy; }这种函数声明方式在PHP 8.0中已被弃用。像这样编写函数从来都没有意义,因为在调用函数时,所有参数(直到最后一个必需参数)都需要指定。这还导致了混淆,因为使用
ReflectionFunctionAbstract类来分析函数和方法时会出现问题。新的弃用只是确保函数签名遵循常识假设,即必需参数应该始终在可选参数之前声明。
应该重写函数以删除先前参数的默认值。由于函数永远不会在不声明所有参数的情况下被调用,因此这对其功能不会产生任何影响。
function test_function(int $var1, int $var2) { return $var1 / $var2; }