【问题标题】:classic asp cint经典的 asp cint
【发布时间】:2009-09-04 14:26:10
【问题描述】:

我是经典 asp 的新手,我所有的经验都是 c# .net 和 ColdFusion 和 php。

不管怎样,我正在开发的这个网站到处都有这段代码

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

我不明白为什么“0”会附加到 cint() 输入中的 var 上?我只是错过了什么吗?这是某种安全的东西吗?效率高吗?

顺便说一句,有什么经典的asp书籍推荐吗?

【问题讨论】:

  • 这里有点好玩。添加子不能(
  • 添加子 cint(Val) cint = clng(Val) 结束子。抱歉之前的帖子

标签: asp-classic


【解决方案1】:

它是处理空值的老技巧。对 null 调用 CInt 会导致错误。但是,将字符串与 null 连接会导致字符串,因此“0”和 null 返回“0”。这可以防止 CInt 在值为 null 时出错。

【讨论】:

    【解决方案2】:

    myVar 可能是空的、对象、空字符串或非数字。前置“0”保证无论如何你都会得到一些个有效的整数。

    【讨论】:

    • CInt(Empty) 返回 0。尝试将“0”与没有默认属性的对象连接会导致错误。
    【解决方案3】:

    我的经典 ASP 有点生疏,但我相信这是一个安全的东西。例如,如果 myVar 没有被定义并且它试图做一个 CInt,那会导致一个错误。

    【讨论】:

    • 使用选项显式代码将无法编译,没有选项显式,未定义的变量将动态定义并赋予空值。空值将 CInt 设为 0。
    【解决方案4】:

    如果你输入一个空值,你会得到一个错误。 Cstr 不是这种情况

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多