全部產品
Search
文件中心

Server Load Balancer:條件判斷相關函數

更新時間:Jun 19, 2024

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

and | or | not | eq | ne | null

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://tech.com.cn/zt_d/we2015/', $http_from), 'enhance_redirect')
}
  • 當要求標頭from存在,且其值為[wap|comos]時,302重寫向至http://tech.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')
}
  • 請求參數k1k2都存在時,執行後續的比較操作。
  • 請求參數k1k2不存在時,短路語義生效,不再執行後續的比較操作。
  • eq: 請求參數k1的值是否等於value1
  • ne: 請求參數k2的值不等於value2
  • 當請求參數k1k2均存在,且k1等於value1k2不等於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')
}
  • 請求參數k1k2都存在時,執行後續的比較操作。
  • 請求參數k1k2不存在時,短路語義生效,不再執行後續的比較操作。
  • eq: 請求參數k1的值是否等於value1
  • ne: 請求參數k2的值不等於value2
  • 當請求參數k1k2均存在,且k1等於value1k2不等於value2時,輸出響應體match condition

null

專案描述
文法null(v)
說明判斷AScript資料類型是否為空白。
參數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