我在一个ASP Classic中遇到过这个有趣的功能。起初我笑了,摇了摇头,然后哭了(只是一点点)。但后来我开始怀疑是否有任何正当理由为什么999999999999999显然会被视为NULL,因为VBScript有它的怪癖。正如注释中所提到的,传递给此函数的值是从COM dll返回的。
任何人都可以确认是否存在某些合理的理由,或者是否已成熟提交给TheDailyWTF。
function NullNumberCheck(Value)
if IsNumeric(Value) then
if Value = 999999999999999 then
Value = ""
end if
end if
NullNumberCheck = Value
end function
答案 0 :(得分:2)
在数据源中看起来像是“魔术空”的情况 - 数据库中是否有一个列支持传递给此函数的值,该值不可为空?
Why are people using magic values instead of null in their code?
答案 1 :(得分:1)
作者正在使用此作为清除或取消设置变量的方法。通过将Value的值设置为空字符串,它将清除任何先前的值。作者可以轻松地将其设置为等于0,vbNull或vbEmpty。这实际上取决于您在脚本中稍后使用的值。如果继续对变量执行进一步检查,则将其设置为vbNull可能并不可取,如果使用Option Explicit,则将其设置为vbEmpty可能会导致脚本崩溃。
所以要回答你的问题,这不是检查“空”值的有效方法,因为它根本不是比较操作,它正在执行变量赋值。
答案 2 :(得分:0)
要检查空值,可以使用VBscript中内置的IsNull函数