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

CDN:論理関数

最終更新日:Jan 24, 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')
} 
  • a. リクエストにmodeパラメーターが含まれ、modeパラメーターの値がset_headerの場合は、USER-DEFINED-1レスポンスヘッダーを設定します。
  • b. 要求にモードパラメータが含まれていない場合、短絡評価が有効になり、eq比較演算子は実行されません。 and() 関数はfalseの値を返すため、レスポンスヘッダーUSER-DEFINED-1は設定されません。

または

この関数の詳細を次の表に示します。
項目説明
構文または (arg, ...)
説明
  • 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')
} 
  • a. リクエストにFromヘッダーが含まれ、その値がwapまたはcomosの場合、HTTP 302ステータスコードが返され、リクエストはhttp://example.com.cn/zt_d/we2015/[wap | comos] にリダイレクトされます。
  • b. 要求にFromヘッダーが含まれ、その値がwapの場合、短絡評価が有効になり、comos値は無視されます。 or() 関数はtrueの値を返します。

not

この関数の詳細を次の表に示します。
項目説明
構文not(arg)
説明NOT論理演算子を実行します。 undeffalseの値はfalseに評価され、その他の値はtrueに評価されます。
パラメーターチェックする値。The value that you want to check. 指定できる値は1つだけです。 データ型: 任意の型。
戻り値
  • true
  • false
例:そうでない場合は
($arg_key) {
    exit(403)
}
そうでない場合 ($cookie_user) {
    exit(403、「cookieユーザーではない」)
}
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

この関数の詳細を次の表に示します。
項目説明
構文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')
} 
  • a. 要求がk1およびk2パラメータの両方を含む場合、比較演算が実行される。
  • b. 要求がk1またはk2パラメータを含まない場合、短絡評価が有効になり、比較動作は実行されない。
  • eq: c。 eq: k1パラメーターの値がvalue1に等しいかどうか。
  • ne: d。 ne: k2パラメータの値がvalue2と等しくないかどうか。
  • e。 レスポンス本文 "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')
} 
  • a. 要求がk1およびk2パラメータの両方を含む場合、比較演算が実行される。
  • b. 要求がk1またはk2パラメータを含まない場合、短絡評価が有効になり、比較動作は実行されない。
  • eq: c。 eq: k1パラメーターの値がvalue1に等しいかどうか。
  • ne: d。 ne: k2パラメータの値がvalue2と等しくないかどうか。
  • e。 レスポンス本文 "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
真