In ASP ist eine nicht initialisierte Session-Variable leer. Ich weiß, dass der richtige Weg für einen Session-Wert zu überprüfen und einen Wert entfernen, ist die folgende:ASP Sitzungsvariablen: Ist "" dasselbe wie IsEmpty?
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
Ich habe eine Codebase geerbt wo Anwendungs- und Session-Variablen werden in der Regel = ""
nach Gebrauch gesetzt, und alle Tests für einen Wert sind die Form (Sessions("myVar") = "")
. Dieser Test erscheint zu arbeiten, wenn die Session-Variable nicht deklariert wurde ... oder vielleicht funktioniert es nur durch dummes Glück.
Ist es sicher, einen Vergleich mit der leeren Zeichenfolge zu verwenden, um eine Session-Variable zu testen? Das heißt, ist das Folgende "praktisch so gut" wie die oben gezeigte korrekte Methode?
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
Oder sollte ich Refactoring den Code-Basis, so dass:
- Alle Tests, um zu bestimmen, ob eine Session-Variable gesetzt wurde von der Form sind
IsEmpty(Session("myVar"))
- Alle Session-Variablen
Remove
d sind und nicht Set= ""
?
Ich neige dazu, mit 'IsEmpty()' zu vermeiden und stattdessen für 'Len (Wert & "")> 0 'entscheiden. – Lankymart
@Lankymart - Ja, ich sehe eine Menge "Wert &" "' zum Schutz vor Fällen, in denen "Wert" nicht definiert sein könnte. – feetwet