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

:論理関数

最終更新日:Sep 14, 2024

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

and | or | not | eq | ne | null

および

項目

説明

構文

説明

  • 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レスポンスヘッダーを設定します。

  • 要求にmodeパラメータが含まれていない場合、短絡評価が有効になり、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://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論理演算子を実行します。 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)
}
  • リクエストに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パラメータを含まない場合、短絡評価が有効となり、比較動作は実行されない。

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

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

  • レスポンス本文の一致条件を含むレスポンスは、リクエストに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パラメータを含まない場合、短絡評価が有効となり、比較動作は実行されない。

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

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

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

null

項目

説明

構文

null(v)

説明

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

パラメーター

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