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
有没有办法解决这个问题,或者我是否必须找到每个传递少于预期参数的示例并重写我的代码?谢谢你的帮助!
来自 PHP 手册:
以前,调用参数太少的用户定义函数时会发出警告。现在,此警告已升级为错误异常。此更改仅适用于用户定义的函数,而不适用于内部函数。例如:
https://www.php.net/manual/en/migration71.incompatible.php
尝试将第三个参数设为可选:
function displayField($fieldname, $fieldval, $nobold = null) { ... };
Run Code Online (Sandbox Code Playgroud)