2009-09-04 171 views
7

我是新來的經典asp,我所有的經驗都在c#.net和ColdFusion和php中。經典asp cint

不管怎麼說,這個網站我正在有這個代碼到處

)輸入
If (CInt("0" & myVar) > 0) Then 
    myNewCar = CInt("0" & myVar) 
End If 

我不明白的是,爲什麼「0」被追加到VAR在CINT( ?我只是想念一些東西?這是一種安全的東西嗎?它有效嗎?

在旁註中,推薦任何經典的asp書籍?

+0

這裏是有點好玩。添加sub不能( – 2018-02-05 00:58:44

+0

)添加sub cint(Val)cint = clng(Val)end sub。對不起早期文章 – 2018-02-05 01:00:00

回答

11

它是一個古老的黑客來處理空值。在空值上調用CInt會導致錯誤。但是,將字符串與空值連接會導致字符串,因此「0」&空返回「0」。這可以防止CInt在值爲空時出錯。

2

myVar可能是空,對象,空字符串或非數字。預先掛起的「0」保證你會得到一些有效整數無論如何退出。

+1

CInt(空)返回0.嘗試連接一個沒有默認對象的「0」屬性會導致錯誤 – AnthonyWJones 2009-09-04 14:32:56

0

我的經典ASP有點生疏,但我相信這是一件安全的事情。例如,如果myVar沒有被定義,並且它試圖做一個CInt,那會導致一個錯誤。

+1

如果顯式選項顯示代碼不會編譯,沒有Option Explict的情況下,一個未定義的變量會被動態地定義並賦值爲空,空值將CInt設置爲0。 – AnthonyWJones 2009-09-04 14:36:25

0

如果您CInt爲空值,您將收到錯誤。對於Cstr,情況並非如此

假設檢查myVar> 0基本上是空檢查。

myVar=cstr(myVar) 
If (not length(myVar) = 0) Then 
    myNewCar = cint(myVar) 
End If 

所以myNewCar要麼是「」或價值,你永遠不會得到一個錯誤