Die drei Anweisungen (Funktionen) Eval, Execute und ExecuteGlobal führen alle Zeichenfolgenausdrücke aus, sind jedoch unterschiedlich. Eval wertet einen Ausdruck aus und gibt das Ergebnis zurück.
Syntax: [result = ]eval_r(expression_r)
expression_r ist eine Zeichenfolge eines beliebigen gültigen VBScript-Ausdrucks
Beispiel:
Kopieren Sie den Codecode wie folgt:
Response.Write(eval_r(3+2)) 'Ausgabe 5
3+2 ist in Anführungszeichen gesetzt, was darauf hinweist, dass es sich um eine Zeichenfolge handelt, aber in den Augen von Eval wird es als Ausdruck 3+2 ausgeführt.
Execute führt eine oder mehrere angegebene Anweisungen aus. Verwenden Sie Doppelpunkte (:), um mehrere Anweisungen zu trennen.
Syntax:Anweisungen ausführen
Beispiel:
Antwort ausführen.Write(abc) 'Abc ausgeben
Code kopieren
Response.Write(abc) wird in Anführungszeichen gesetzt, um eine Zeichenfolge anzugeben
In den Augen von Execute wird es jedoch als Anweisungsantwort ausgeführt.Write(abc).
ExecuteGlobal führt eine oder mehrere angegebene Anweisungen im globalen Namespace aus.
Syntax:ExecuteGlobal-Anweisung
Beispiel:
Kopieren Sie den Codecode wie folgt:
schwach c
c = globale Variable
Unter S1()
schwach c
c = lokale Variable
Führen Sie „response.Write(c)“ aus. „Lokale Variablen ausgeben.“
ExecuteGlobal Response.Write(c) 'Globale Variablen ausgeben
Ende sub
Führen Sie „response.Write(c)“ aus. „Globale Variablen ausgeben.“
rufe S1() auf
Die Variable c ist sowohl im globalen Gültigkeitsbereich als auch im Funktionsbereich definiert. Execute entscheidet sich je nach Standort für die Verwendung lokaler Variablen oder globaler Variablen, während ExecuteGlobal c immer nur im globalen Gültigkeitsbereich erkennt.
Zusammenfassen:
Eval führt nur eine Anweisung aus. Die Anweisung kann einen Wert zurückgeben oder auch nicht.
Execute führt eine oder mehrere Anweisungen aus und ignoriert dabei den Rückgabewert der Anweisung
ExecuteGlobal führt eine oder mehrere Anweisungen aus und ignoriert den Rückgabewert der Anweisung. Wenn eine globale Variable und eine lokale Variable denselben Namen haben, wird immer die globale Variable verwendet.
Beachten:
In VBScript kann man sagen, dass = für die Zuweisung und den Vergleich verwendet wird, um a den Wert von b zuzuweisen, oder um zu bestimmen, ob a und b gleich sind b) eine Zuweisung oder eine Vergleichsoperation darstellen?
Hier gibt es eine Konvention: a=b bedeutet immer Vergleichsoperation und in Execute und ExecuteGlobal immer Zuweisung.