将太少的参数传递给函数时,PHP 7 是否会抛出错误?

enc*_*dus 3 php parameters arguments function

我正在将我的 webapp 从 5.6 升级到 php7,当我向函数传递的参数太少时,我突然收到错误消息。在 php 5.6 中,我可以使用带有三个参数的函数,并且可以传递两个参数,并且它可以正常工作。有没有其他人遇到过这个问题?这是 php7 的新功能吗?

我曾经能够将两个参数传递给具有三个参数的函数,但突然间我收到错误消息。

function displayField ($fieldname,$fieldval,$nobold)  { ... };

displayField ("testname","this value");
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到:

致命错误:未捕获的 ArgumentCountError:函数 displayField() 的参数太少,第 31 行在 /home/cabox/workspace/php/encscripts.php 中传递了 2 个,在 /home/cabox/workspace/php/encscripts.php 中预期正好有 3 个:3

有没有办法解决这个问题,或者我是否必须找到每个传递少于预期参数的示例并重写我的代码?谢谢你的帮助!

Ser*_*huk 8

来自 PHP 手册:

以前,调用参数太少的用户定义函数时会发出警告。现在,此警告已升级为错误异常。此更改仅适用于用户定义的函数,而不适用于内部函数。例如:

https://www.php.net/manual/en/migration71.incompatible.php

尝试将第三个参数设为可选:

function displayField($fieldname, $fieldval, $nobold = null) { ... };
Run Code Online (Sandbox Code Playgroud)