本文介紹在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, 而要使用D Is Nothing 來判斷D 是否等於Nothing,因為判斷是否相等的符號是Is不是=。
最令人迷惑的地方是 Null 這個保留字,請看以下語句:
Print X = Null
Print X <> Null
結果都是輸出 Null(不是True 也不是False),這是因為任何一個運算式只要含有Null,則該運算式就等於Null,實際上想要判斷某一數據是否為Null 絕對不能使用:
If X = Null Then ' 永遠都會得到Null
而要使用:
If IsNull(X) Then
哪一種數據會等於 Null呢?除了含有Null運算式之外,就屬沒有輸入任何數據的「數據字段」(在數據庫中)會等於Null。即大家可以理解為Null就是數據裡面讀出來的空字段。