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

CDN:論理関数

最終更新日:Oct 11, 2024

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

および

この関数の詳細を次の表に示します。

項目

説明

構文

と (arg, ...)

説明

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

  • 短絡の評価は支えられます。 値がfalseに評価されると、この値に続く値は評価されません。

パラメーター

チェックする値。The value that you want to check. 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レスポンスヘッダーを設定します。

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

または

この関数の詳細を次の表に示します。

項目

説明

構文

説明

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

  • 短絡の評価は支えられます。 値がtrueに評価されると、この値に続く値は評価されません。

パラメーター

チェックする値。The value that you want to check. 1つ以上の値を指定できます。 データ型: 任意の型。

戻り値

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

例:

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

  • 要求にFromヘッダーが含まれ、その値がwapの場合、短絡評価が有効になり、comos値は無視されます。 or() 関数はtrueの値を返します。

not

この関数の詳細を次の表に示します。

項目

説明

構文

説明

NOT論理演算子を実行します。 undeffalseの値はfalseに評価され、その他の値はtrueに評価されます。

パラメーター

チェックする値。The value that you want to check. 指定できる値は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)
}
  • リクエストにキーパラメーターが含まれていない場合、リクエストは拒否され、HTTP 403ステータスコードが返されます。

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

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

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

eq

この関数の詳細を次の表に示します。

項目

説明

構文

説明

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パラメータを含まない場合、短絡評価が有効になり、比較動作は実行されない。

  • eq: k1パラメーターの値がvalue1に等しいかどうか。

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

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

ne

この関数の詳細を次の表に示します。

項目

説明

構文

説明

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パラメータを含まない場合、短絡評価が有効になり、比較動作は実行されない。

  • eq: k1パラメーターの値がvalue1に等しいかどうか。

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

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

null

この関数の詳細を次の表に示します。

項目

説明

構文

null(v)

説明

データ型がEdgeScript (ES) に指定されているかどうかをチェックします。

パラメーター

v: 渡すパラメータ。 データ型: 配列、辞書、または文字列。 他のデータ型に対してfalseの値が返されます。

戻り値

データ型:Boolean

  • 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