繁体   English   中英

将多个Vars传递给PHP函数

[英]Passing Multiple Vars to PHP Function

我有一个问题将变量传递给PHP函数。 我正在运行带有PHP 7.0.33的Raspberry Pi网络服务器。 覆盆子上的一切都运行良好。 当我将我的页面上传到运行PHP 7.2的Godaddy服务器时,我得到了可怕的死亡白页。 我追溯到下面。 这是简化的。

在树莓上:

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

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

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

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

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

这不适用于Godaddy服务器,除非我发送4个变量并接收4个变量。 所以对于测试我只是插入$x这样就可以了。

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

所以我的问题......这是PHP 7.033和Godaddy上运行的7.2之间的功能差异吗? 或者PHP设置中是否有允许此功能的设置?

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

编辑:看起来像PHP 7.1提升了太少的参数警告错误。 https://php.net/manual/en/migration71.incompatible.php

对于第四个参数,可以给它一个默认值null,这样只需要3个参数。

function updateCustomer($uniqueid, $name, $title, $job = null)

是的,PHP 7.0和PHP 7.1之间有变化。

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

这是你所看到的实际效果 - 它已从警告(因此它工作,没有错误 - 只是一条消息)更改为实际错误。

解决方案是通过向参数添加默认值来简单地修复它 ,从而使其成为可选的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM