经典的asp cint

时间:2009-09-04 14:26:11

标签: asp-classic

我是经典asp的新手,我的经验是在c#.net和ColdFusion以及php。

无论如何,我正在研究的这个网站上都有这个代码

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

我不明白为什么“0”附加到cint()输入中的var?我只是错过了一些东西吗?这是安全吗?它有效吗?

另一方面,推荐任何经典的asp书?

4 个答案:

答案 0 :(得分:11)

它是一个处理空值的旧hack。在null上调用CInt会导致错误。但是,将字符串与null连接会导致字符串因此为“0”& null返回“0”。这可以防止CInt在值为空时发生错误。

答案 1 :(得分:2)

myVar可能没什么,对象,空字符串或非数字。预先挂起的“0”保证无论如何都会将某些有效整数退出。

答案 2 :(得分:0)

我的经典ASP有点生疏,但我相信这是安全的事情。例如,如果未定义myVar并且它尝试执行CInt,则会导致错误。

答案 3 :(得分:0)

如果CInt为空值,则会出现错误。对于Cstr

,情况并非如此

假设检查myVar> 0基本上是空检查。

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

所以myNewCar要么是“”,要么是值,你永远不会得到错误