【发布时间】:2018-10-03 11:39:49
【问题描述】:
我的代码中有几个函数,它们需要多个参数。
我使用的是 PHP 5.5,每当我只输入第一个参数时,它都能正常工作,而只是忽略了第二个参数(我猜它认为它是“0”)。
但我刚刚升级到 PHP 7.2,这已经成为一个问题。
因此,有没有办法让 PHP 7.2 继续将未定义的参数视为“0”,而不是修复我的所有代码,这些代码分布在多个文件中,以避免导致页面崩溃?
编辑:
示例函数:
function calculate( $m,$status ) {
return ''.$m.''.$status.'';
}
如果$status不存在,它应该简单地输出$m
【问题讨论】:
-
正确的修复(可能)涉及更改函数,而不是调用者。您必须将默认值添加到并不总是提供的参数中。这可能比您想象的要少 - 有多少函数给您带来了这个问题?
-
伙计们,PHP 4.3.x 到 7.0.x 发出警告,但 PHP 7.1+ 发出致命异常。
-
我会看到为这些参数设置默认值作为升级到 PHP 7.2 的一部分。如果工作量太大,那就不要升级那么远。更严格的类型是升级到 7.x IMO 的最佳原因之一,其次是性能。
-
您可以升级到 PHP 7.0.29 而无需修复您的代码。
-
旁注:您可以将
return ''.$m.''.$status.'';更改为return $m . $status;。不需要引号。
标签: php function arguments parameter-passing