将多个变量传递给PHP函数

时间:2019-07-05 19:42:49

标签: php php-7.2 php-7.0

我在将变量传递给PHP函数时遇到问题。我正在使用PHP 7.0.33运行Raspberry Pi Web服务器。在树莓上一切正常。当我将页面上传到运行PHP 7.2的Godaddy服务器时,我得到了可怕的死亡白页。我将其追溯到以下内容。简化了。

在树莓上:

这就是我发送变量的方式。

updateCustomer($uniqueid, $name, $title);  

这就是我在函数中接收它们的方式。

function updateCustomer($uniqueid, $name, $title, $job){
}

在树莓派上,我发送了3个变量($uniqueid$name$title)。该函数正在寻找4个变量($uniqueid$name$title$job),但如果不存在最后一个变量($job

除非我发送4个变量并接收4个变量,否则这在Godaddy服务器上将不起作用。因此,为了进行测试,我只是像这样插入$x并起作用。

function updateCustomer($uniqueid, $name, $title, $x){
}

所以我的问题...这是PHP 7.033与Godaddy上运行的7.2之间的功能区别吗?还是PHP设置中有一项设置可以使它正常工作?

2 个答案:

答案 0 :(得分:8)

两者之间的差异可能与两台机器上的PHP错误报告/日志记录配置有关。

编辑:看起来php 7.1升级了警告错误的参数太少。 here

对于第四个参数,可以将其默认值设置为null,以便仅需要3个参数。

app

答案 1 :(得分:2)

是的,PHP 7.0和PHP 7.1之间有所不同。

  

以前(PHP <= 7.0),如果调用的用户定义函数参数太少,将发出警告。现在(PHP> = 7.1),此警告已升级为Error异常。此更改仅适用于用户定义的功能,不适用于内部功能。

您所看到的实际上是什么-它已从警告(因此有效,没有错误-只是一条消息)更改为实际错误。

解决方案是简单地修复,方法是在参数中添加默认值,从而使其成为可选参数。

function updateCustomer($uniqueid, $name, $title, $job = null) {
   // ..
}