PHP 8.0 函数参数语法更改:必需参数必须位于可选参数之前
当必需函数参数跟在可选参数。出现此错误的原因是旧版本的 PHP 允许这种行为,但这种行为没有意义,因为需要指定最后一个必需参数之前的所有参数。
示例:
考虑以下函数:
function test_function(int $var1 = 2, int $var2) { return $var1 / $var2; }
在 PHP 8.0 中,此函数将引发以下弃用警告:
Deprecated: Required parameter $var2 follows optional parameter $var1 in...
弃用原因:
此更改可确保函数签名遵循常识性假设,即必需参数应在可选参数之前声明。这澄清了函数行为并简化了使用 ReflectionFunctionAbstract 类的分析。
解决方案:
要解决此问题,只需从早期参数中删除默认值即可。对于上面的示例,该函数将重写为:
function test_function(int $var1, int $var2) { return $var1 / $var2; }
此更改不应影响函数的功能,因为如果不声明所有参数,则永远无法调用该函数。
以上是为什么必需的 PHP 8.0 函数参数现在需要位于可选参数之前?的详细内容。更多信息请关注PHP中文网其他相关文章!