是否有可能全局忽略“错误:函数参数太少”?

时间:2018-04-23 12:15:01

标签: php function arguments parameter-passing

我的代码中有几个函数,需要多个参数。

我使用的是PHP 5.5,每当我只输入第一个参数时,它运行正常,并且忽略了第二个参数(我猜它看起来是“0”)。

但我刚刚升级到PHP 7.2,这已经成为一个问题。

因此,有一种方法可以命令PHP 7.2继续将未定义的参数视为“0”,以避免出现此错误,从而导致页面出现,而不是修复我的所有代码,这些代码分布在多个文件中。崩溃?

修改

示例功能:

function calculate( $m,$status ) {

    return ''.$m.''.$status.'';

}

如果$status不存在,则只需输出$m

1 个答案:

答案 0 :(得分:4)

最简单,最干净的方法是为每个参数提供默认值,使其成为可选项

function myFunction ($requiredParam, $optionalInt = 0, $optionalStr = '') {
    //
}

然后您可以毫无错误地致电myFunction(1);myFunction(1,2); myFunction(1,2,'x');

如果您对why this happens感到好奇,那就是

  

“以前,会发出一个警告,用于调用用户定义的   参数太少的函数。现在,这个警告已被提升   到错误异常。此更改仅适用于用户定义   功能,而不是内部功能。“