全部產品
Search
文件中心

CDN:條件判斷相關

更新時間:Sep 15, 2024

本文為您介紹條件判斷相關函數的文法、說明、參數、傳回值和樣本。

and

函數詳細資料,請參見下表:

專案

描述

文法

and(arg, ...)

說明

  • 邏輯與運算子。

  • 支援短路語義,即某個參數為假時,後續參數不再進行求值。

參數

一個或多個參數,參數類型不限。

傳回值

全部參數為真時返回true,任一參數為假時返回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()為假,不會設定回應標頭USER-DEFINED-1。

or

函數詳細資料,請參見下表:

專案

描述

文法

or(arg, ...)

說明

  • 邏輯或運算子。

  • 支援短路語義,即某個參數為真時,後續參數不再進行求值。

參數

一個或多個參數,參數類型不限。

傳回值

任一參數為真時返回true,全部參數為假時返回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]時,302重新導向至http://example.com.cn/zt_d/we2015/[wap|comos]。

  • 當要求標頭from存在,且其值為wap時,短路語義生效,不再執行後續eq comos比較,同時or()返回true。

not

函數詳細資料,請參見下表:

專案

描述

文法

not(arg)

說明

邏輯運算子取反。參數undeffalse為假,其餘為真。

參數

僅接受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時,403拒絕請求。

  • 當請求未攜帶cookie user時,403拒絕請求,響應body為'not cookie user'

  • not(0)的結果為false。

  • not(false)的結果為true。

eq

函數詳細資料,請參見下表:

專案

描述

文法

eq(arg1, arg2)

說明

比較2個參數是否相等。

參數

  • arg1:任意類型。

  • arg2:應與arg1類型相同。

傳回值

參數相等返回true,否則返回false

樣本

key1 = 'value1'
if eq(key1, $arg_k1) {
    say('match condition')
}
  • eq: 請求參數k1的值是否等於value1。

  • 當請求參數k1等於value1,輸出響應體match condition。

ne

函數詳細資料,請參見下表:

專案

描述

文法

ne(arg1, arg2)

說明

比較2個參數是否不等。

參數

  • arg1:任意類型。

  • arg2:應與arg1類型相同。

傳回值

參數不等返回true,否則返回false

樣本

key2 = 'value2'
if ne(key2, $arg_k2) {
    say('match condition')
}
  • ne: 請求參數k2的值不等於value2。

  • 當請求參數k2不等於value2時,輸出響應體match condition。

null

函數詳細資料,請參見下表:

專案

描述

文法

null(v)

說明

判斷ES資料類型是否為空白。

參數

v:需要傳入的參數,類型為數組、字典和字串,其他類型均返回false。

傳回值

傳回值為bool類型

  • v是數組和字典,如果為空白,返回true。

  • v是字串,如果值為空白串,返回true。

  • 其他情況均返回false。

樣本

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

輸出:

true
false
false
true