PHP函数缺少参数错误

Tur*_*Ali 7 php validation function

我的验证功能看起来像那样

function validate($data, $data2 = 0, $type)
{
...
Run Code Online (Sandbox Code Playgroud)

函数调用示例

if ($result = validate($lname, 'name') !== true)
        response(0, $result, 'lname');
Run Code Online (Sandbox Code Playgroud)

如您所见,我的验证功能有3个输入变量.我不经常使用第二个var - $ data2,这就是默认设置为0的原因.但是,当我将此函数作为给定示例调用时(据我所知它意味着$ data = $ lname,$ data2 = 0,$ type ='name')获取错误消息

Missing argument 3 ($type) for validate() 
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Ber*_*rak 21

缺少参数3($ type)的validate()

始终列出可选参数作为最后一个参数.由于PHP没有命名参数也没有"重载ala Java",这是唯一的方法:

function validate($data, $type, $data2 = 0) {
}
Run Code Online (Sandbox Code Playgroud)


Aur*_*osa 6

您至少应该在此行中设置$ type:

function validate($data, $data2 = 0, $type)
Run Code Online (Sandbox Code Playgroud)

NULL''如您所见:

function validate($data, $data2 = 0, $type = null)
Run Code Online (Sandbox Code Playgroud)

PHP让您能够为参数设置一个值,但不能定义参数预设值的参数(S),其HAVE预设值.因此,如果您需要始终指定第三个参数,则必须像这样切换第二个和第三个参数:

function validate($data, $type, $data2 = 0)
Run Code Online (Sandbox Code Playgroud)