3 つのステートメント (関数) Eval、Execute、および ExecuteGlobal はすべて文字列式を実行しますが、それらは異なります。 Eval は式を評価し、結果を返します。
構文: [result = ]eval_r(expression_r)
expression_r は、任意の有効な VBScript 式の文字列です。
例:
次のようにコードをコピーします。
response.Write(eval_r(3+2)) '出力 5
3+2 は引用符で囲まれており、文字列であることを示していますが、Eval の観点からは式 3+2 として実行されます。
Execute は、1 つ以上の指定されたステートメントを実行します。複数のステートメントを区切るにはコロン (:) を使用します。
構文:ステートメントの実行
例:
応答実行.Write(abc) 'abcを出力
コードをコピーする
response.Write(abc) は文字列を示すために引用符で囲まれています
しかし、Execute の観点からは、これはステートメント response.Write(abc) として実行されます。
ExecuteGlobal は、グローバル名前空間で 1 つ以上の指定されたステートメントを実行します。
構文:ExecuteGlobal ステートメント
例:
次のようにコードをコピーします。
薄暗いC
c = グローバル変数
サブS1()
薄暗いC
c = ローカル変数
response.Write(c)を実行 'ローカル変数を出力
ExecuteGlobal response.Write(c) 'グローバル変数を出力します
エンドサブ
実行response.Write(c) 'グローバル変数を出力
S1()を呼び出す
変数 c はグローバル スコープと関数スコープの両方で定義されますが、ExecuteGlobal は常にグローバル スコープ内の c のみを認識します。
要約:
Eval は 1 つのステートメントのみを実行します。ステートメントは値を返す場合もあれば、返さない場合もあります。
Execute は、ステートメントの戻り値を無視して 1 つ以上のステートメントを実行します。
ExecuteGlobal は 1 つ以上のステートメントを実行し、ステートメントの戻り値を無視します。グローバル変数とローカル変数の名前が同じ場合、常にグローバル変数が使用されます。
知らせ:
VBScript では、= は代入と比較に使用されます。たとえば、a=b は b の値を a に代入する、または a と b が等しいかどうかを判断するために使用されます。 b) 代入または比較演算を表しますか?
ここには規則があります。Eval では、a=b は常に比較演算を意味し、Execute および ExecuteGlobal では常に代入を意味します。