全部產品
Search
文件中心

ApsaraVideo VOD:條件判斷相關

更新時間:Feb 27, 2025

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

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'
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時,輸出響應體match condition。

ne

函數詳細資料,請參見下表:
專案描述
文法ne(arg1, arg2)
說明比較2個參數是否不等。
參數
  • arg1:任意類型。
  • arg2:應與arg1類型相同。
傳回值參數不等返回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時,輸出響應體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