すべてのプロダクト
Search
ドキュメントセンター

Server Load Balancer:論理関数

最終更新日:May 08, 2025

このトピックでは、論理関数の構文、機能、パラメーター、および戻り値について説明します。また、これらの関数の例も示します。

and

項目

説明

構文

and(arg, ...)

説明

  • AND 論理演算子を実行します。

  • 短絡評価がサポートされています。値が false と評価されると、この値に続く値は評価されません。

パラメーター

確認する値。1 つ以上の値を指定できます。データ型:任意の型。

戻り値

すべての値が true と評価された場合は true を返し、値が false と評価された場合は false を返します。

if and($arg_mode, eq($arg_mode, 'set_header')) {
   add_rsp_header('USER-DEFINED-1','path1')
}
  • リクエストに mode パラメーターが含まれており、mode パラメーターの値が set_header の場合、USER-DEFINED-1 応答ヘッダーを設定します。

  • リクエストに mode パラメーターが含まれていない場合、短絡評価が有効になり、eq 比較演算子は実行されません。and() 関数が false の値を返すため、応答ヘッダー USER-DEFINED-1 は設定されません。

or

項目

説明

構文

or(arg, ...)

説明

  • OR 論理演算子を実行します。

  • 短絡評価がサポートされています。値が true と評価されると、この値に続く値は評価されません。

パラメーター

確認する値。1 つ以上の値を指定できます。データ型:任意の型。

戻り値

値が true と評価された場合は true を返し、すべての値が false と評価された場合は false を返します。

if and($http_from, or(eq($http_from, 'wap'), eq($http_from, 'comos'))) {
    rewrite(concat('http://tech.com.cn/zt_d/we2015/', $http_from), 'enhance_redirect')
}
  • リクエストに from ヘッダーが含まれており、その値が [wap|comos] の場合、HTTP 302 状態コードが返され、リクエストは http://tech.com.cn/zt_d/we2015/[wap|comos] にリダイレクトされます。

  • リクエストに from ヘッダーが含まれており、その値が wap の場合、短絡評価が有効になり、eq comos 値は無視されます。or() 関数は true の値を返します。

not

項目

説明

構文

not(arg)

説明

NOT 論理演算子を実行します。undef および false の値は false と評価され、その他の値は true と評価されます。

パラメーター

確認する値。1 つの値のみを指定できます。データ型:任意の型。

戻り値

  • true

  • false

if not($arg_key) {
    exit(403)
}
if not($cookie_user) {
    exit(403, 'not cookie user')
}
if not(0) {
    exit(403)
}
if not(false) {
    exit(403)
}
  • リクエストに key パラメーターが含まれていない場合、リクエストは拒否され、HTTP 403 状態コードが返されます。

  • リクエストに cookie_user が含まれていない場合、リクエストは拒否されます。HTTP 403 状態コードとレスポンス本文 "not cookie user" が返されます。

  • not(0) 関数は false の値を返します。

  • not(false) 関数は true の値を返します。

eq

項目

説明

構文

eq(arg1, arg2)

説明

2 つの値が等しいかどうかを比較します。

パラメーター

  • arg1:比較する最初の値。データ型:任意の型。

  • arg2:比較する 2 番目の値。データ型:arg1 パラメーターと同じ。

戻り値

2 つの値が等しい場合は true を返し、等しくない場合は false を返します。

key1 = 'value1'
key2 = 'value2'
if and($arg_k1, $arg_k2, eq(key1, $arg_k1), ne(key2, $arg_k2)) {
    say('match condition')
}
  • リクエストに k1 パラメーターと k2 パラメーターの両方が含まれている場合、比較操作が実行されます。

  • リクエストに k1 パラメーターまたは k2 パラメーターが含まれていない場合、短絡評価が有効になり、比較操作は実行されません。

  • eqk1 パラメーターの値が value1 と等しいかどうか。

  • nek2 パラメーターの値が value2 と等しくないかどうか。

  • レスポンス本文 match condition を含む応答は、次の条件がすべて満たされた場合にのみ返されます。リクエストに k1 パラメーターと k2 パラメーターの両方が含まれている。 k1 パラメーターの値が value1 と等しい。 k2 パラメーターの値が value2 と等しくない。

ne

項目

説明

構文

ne(arg1, arg2)

説明

2 つの値が等しくないかどうかを比較します。

パラメーター

  • arg1:比較する最初の値。データ型:任意の型。

  • arg2:比較する 2 番目の値。データ型:arg1 パラメーターと同じ。

戻り値

2 つの値が等しくない場合は true を返し、等しい場合は false を返します。

key1 = 'value1'
key2 = 'value2'
if and($arg_k1, $arg_k2, eq(key1, $arg_k1), ne(key2, $arg_k2)) {
    say('match condition')
}
  • リクエストに k1 パラメーターと k2 パラメーターの両方が含まれている場合、比較操作が実行されます。

  • リクエストに k1 パラメーターまたは k2 パラメーターが含まれていない場合、短絡評価が有効になり、比較操作は実行されません。

  • eqk1 パラメーターの値が value1 と等しいかどうか。

  • nek2 パラメーターの値が value2 と等しくないかどうか。

  • レスポンス本文 match condition を含む応答は、次の条件がすべて満たされた場合にのみ返されます。リクエストに k1 パラメーターと k2 パラメーターの両方が含まれている。 k1 パラメーターの値が value1 と等しい。 k2 パラメーターの値が value2 と等しくない。

null

項目

説明

構文

null(v)

説明

AScript にデータ型が指定されているかどうかを確認します。

パラメーター

v:渡すパラメーター。データ型:配列、辞書、または文字列。その他のデータ型の場合は false が返されます。

戻り値

データ型:ブール値。

  • v の値が配列または辞書の場合、true が返されます。

  • v の値が空の文字列の場合、true が返されます。

  • v が他のデータ型に設定されている場合、false が返されます。

d = []
say(null(d))
set(d, 1, 'v1')
say(null(d))
say(tostring(null('x')))
say(tostring(null('')))

出力:

true
false
false
true