我的代码中有几个函数,需要多个参数。
我使用的是PHP 5.5,每当我只输入第一个参数时,它运行正常,并且忽略了第二个参数(我猜它看起来是“0”)。
但我刚刚升级到PHP 7.2,这已经成为一个问题。
因此,有一种方法可以命令PHP 7.2继续将未定义的参数视为“0”,以避免出现此错误,从而导致页面出现,而不是修复我的所有代码,这些代码分布在多个文件中。崩溃?
修改
示例功能:
function calculate( $m,$status ) {
return ''.$m.''.$status.'';
}
如果$status
不存在,则只需输出$m
答案 0 :(得分:4)
最简单,最干净的方法是为每个参数提供默认值,使其成为可选项:
function myFunction ($requiredParam, $optionalInt = 0, $optionalStr = '') {
//
}
然后您可以毫无错误地致电myFunction(1);
或myFunction(1,2);
myFunction(1,2,'x');
。
如果您对why this happens感到好奇,那就是
“以前,会发出一个警告,用于调用用户定义的 参数太少的函数。现在,这个警告已被提升 到错误异常。此更改仅适用于用户定义 功能,而不是内部功能。“