gpt4 book ai didi

asp-classic - ASP session 变量 : Is "" same as IsEmpty?

转载 作者:行者123 更新时间:2023-12-04 20:34:22 25 4
gpt4 key购买 nike

在 ASP 中,未初始化的 session 变量为空。我知道检查 Session 值和删除值的正确方法如下:

IF NOT IsEmpty(Session("myVar")) THEN
' Go ahead and use Session("myVar")
...
' Now if we're all done with myVar then remove it:
Session.Contents.Remove("myVar")
END IF

我继承了一个代码库,其中通常设置 Application 和 Session 变量 = ""使用后,对值的所有测试均采用 (Sessions("myVar") = "") 形式.当 Session 变量没有被声明时,这个测试似乎有效......或者它可能只是靠运气。

使用与空字符串的比较来测试 Session 变量是否安全?即,以下是否与上面显示的正确方法“实际上一样好”?
IF Session("myVar") <> "" THEN
' Go ahead and use Session("myVar")
...
' Now if we're all done with myVar then blank it:
Session("myVar") = ""
END IF

或者我应该重构代码库,以便:
  • 确定是否已设置 session 变量的所有测试的形式都是 IsEmpty(Session("myVar"))
  • 所有 session 变量都是 Remove d 且未设置 = "" ?
  • 最佳答案

    Empty是怪兽:同时等于两者""0 .说真的,试试看:

    dim x, y, z
    x = Empty
    y = ""
    z = 0
    Response.Write (x = y) AND (x = z)

    它会写出“True”。

    这意味着测试 Not IsEmpty(myvar)相当于测试 myvar <> "" ,但是 IsEmpty(myvar)不是 相当于 myvar = "" .无论这种主要的理论差异是否困扰您,只有您才能回答,但就个人而言,我不会浪费时间进行重构。

    如果您决定重构,我建议您忘记 IsEmptyIsNull以及诸如此类的,只需使用 & "" “黑客”:
    If Session("myvar") & "" <> "" Then

    这将透明地处理空值和空值,而无需编写一大堆代码。

    关于asp-classic - ASP session 变量 : Is "" same as IsEmpty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38663205/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com