ASP中Null,Empty,Nothing的区别分析
本文介绍在ASP中,NULL,Empty,Nothing这几种空值的来源和判断方法。
Dim A
Dim B As String
Dim C As Integer
Dim D As Object
A 等于Empty,因为尚未初始化的「不定型变量」都等于Empty。但如果检测A=""或A=0,也都可以得到True值。
B 等于 "",因为尚未初始化的非固定长度「字串」都等于""。 但请注意B<>Null。
C 等于 0, 这个还有问题吗?
D 等于 Nothing, 尚未设定有物件的「物件变量」都等于Nothing,但请不要使用D=Nothing,而要使用DIsNothing来判断D是否等于Nothing,因为判断是否相等的符号是Is不是=。
最令人迷惑的地方是Null这个保留字,请看以下语句:
Print X = Null
Print X <> Null
结果都是输出Null(不是True也不是False),这是因为任何一个运算式只要含有Null,则该运算式就等于Null,实际上想要判断某一数据是否为Null 绝对不能使用:
IfX=NullThen '永远都会得到Null
而要使用:
IfIsNull(X)Then
哪一种数据会等于Null呢?除了含有Null运算式之外,就属没有输入任何数据的「数据字段」(在数据库中)会等于Null。即大家可以理解为Null就是数据里面读出来的空字段。