如何处理函数调用中的空参数?

Rod*_*lfo 4 vbscript

当你像x = myfunc(a,b,,d) 第三个参数一样调用函数时?它是空的吗?空值?没有?

我的功能有问题,比方说,

function myfunc(p1, p2, p3, p4)  
  if p3 <> "" then whatever  
end function
Run Code Online (Sandbox Code Playgroud)

给了我一个可怕的 type mismatch

PS我正在尝试用vbscript函数替换CO​​M对象,并且对那些没有问题的COM对象进行了那些空参数调用,但是vbscript不喜欢它们.我不能改变调用,只有函数,所以我需要以某种方式处理空参数,只是不知道如何(尝试isnull没有运气,也是没有运气,并is nothing给我一个object required错误)

Kul*_*gin 6

遗漏参数的数据类型是ERROR.
我写了一个例子,尝试以下方法:

Function IsMissing(p)
    IsMissing = (VarType(p) = vbError)
End Function

Function Myfunc(p1, p2, p3, p4)
    If IsMissing(p1) Then Response.Write "p1 is missing "
    If IsMissing(p2) Then Response.Write "p2 is missing "
    If IsMissing(p3) Then Response.Write "p3 is missing "
    If IsMissing(p4) Then Response.Write "p4 is missing "
End Function

str = myfunc(, , , 1)
'str = myfunc(1, 2, , ) 'causes error
Run Code Online (Sandbox Code Playgroud)

注意:由于语法错误,函数/ sub的最后一个参数不能为空.