我是经典asp的新手,我的经验是在c#.net和ColdFusion以及php。
无论如何,我正在研究的这个网站上都有这个代码
If (CInt("0" & myVar) > 0) Then
myNewCar = CInt("0" & myVar)
End If
我不明白为什么“0”附加到cint()输入中的var?我只是错过了一些东西吗?这是安全吗?它有效吗?
另一方面,推荐任何经典的asp书?
答案 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要么是“”,要么是值,你永远不会得到错误