【发布时间】:2019-07-05 19:42:49
【问题描述】:
我在将变量传递给 PHP 函数时遇到问题。我正在使用 PHP 7.0.33 运行 Raspberry Pi 网络服务器。覆盆子上的一切都运行良好。当我将页面上传到运行 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 设置中是否有一个设置可以让它工作?
【问题讨论】:
-
两个字:报错;-)
-
除非您直接运行它,否则它不会给出错误,因为它会在自己的界面上发送错误消息 - 而不是您的。如果您不想发送变量,可以使用
function updateCustomer($uniqueid,$name,$title,$job = null)。 -
如果你没有给它所有期望的参数,PHP 会给你“致命错误:未捕获的 ArgumentCountError:函数 updateCustomer() 的参数太少”。您必须做一些不同的事情(例如可选参数(具有默认值))。
-
来自错误日志。 [05-Jul-2019 15:49:18 America/New_York] PHP 致命错误:未捕获的 ArgumentCountError:函数 updateCustomer() 的参数太少,传入 3 个
-
完全正确 - 因此,您需要给
$job一个默认值(如声明中的$job = null)。