All Products
Search
Document Center

Server Load Balancer:Fungsi logika

Last Updated:Jun 27, 2025

Topik ini menjelaskan sintaks, fitur, parameter, dan nilai kembali dari fungsi logika, serta menyertakan contoh penggunaannya.

and

Item

Deskripsi

Sintaks

and(arg, ...)

Deskripsi

  • Menjalankan operator logika AND.

  • Evaluasi singkat didukung. Saat sebuah nilai dievaluasi menjadi salah, nilai-nilai berikutnya tidak akan dievaluasi.

Parameter

Nilai yang ingin Anda periksa. Anda dapat menentukan satu atau lebih nilai. Tipe data: semua tipe.

Nilai kembali

Mengembalikan true jika semua nilai dievaluasi menjadi benar dan mengembalikan false jika sebuah nilai dievaluasi menjadi salah.

Contoh

if and($arg_mode, eq($arg_mode, 'set_header')) {
   add_rsp_header('USER-DEFINED-1','path1')
}
  • Jika permintaan mencakup parameter mode dan nilai dari parameter mode adalah set_header, atur header respons USER-DEFINED-1.

  • Jika permintaan tidak mencakup parameter mode, evaluasi singkat berlaku dan operator perbandingan eq tidak dijalankan. Header respons USER-DEFINED-1 tidak akan diatur karena fungsi and() mengembalikan nilai salah.

or

Item

Deskripsi

Sintaks

or(arg, ...)

Deskripsi

  • Menjalankan operator logika OR.

  • Evaluasi singkat didukung. Saat sebuah nilai dievaluasi menjadi benar, nilai-nilai berikutnya tidak akan dievaluasi.

Parameter

Nilai yang ingin Anda periksa. Anda dapat menentukan satu atau lebih nilai. Tipe data: semua tipe.

Nilai kembali

Mengembalikan true jika sebuah nilai dievaluasi menjadi benar dan mengembalikan false jika semua nilai dievaluasi menjadi salah.

Contoh

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')
}
  • Jika permintaan mencakup header from dan nilainya adalah [wap|comos], kode status HTTP 302 dikembalikan dan permintaan dialihkan ke http://tech.com.cn/zt_d/we2015/[wap|comos].

  • Jika permintaan mencakup header from dan nilainya adalah wap, evaluasi singkat berlaku dan nilai eq comos diabaikan. Fungsi or() mengembalikan nilai true.

not

Item

Deskripsi

Sintaks

not(arg)

Deskripsi

Menjalankan operator logika NOT. Nilai undef dan false dievaluasi menjadi salah, dan nilai lainnya dievaluasi menjadi benar.

Parameter

Nilai yang ingin Anda periksa. Anda hanya dapat menentukan satu nilai. Tipe data: semua tipe.

Nilai kembali

  • true

  • false

Contoh

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)
}
  • Jika permintaan tidak mencakup parameter key, permintaan ditolak dan kode status HTTP 403 dikembalikan.

  • Jika permintaan tidak mencakup cookie_user, permintaan ditolak. Kode status HTTP 403 dan badan respons "not cookie user" dikembalikan.

  • Fungsi not(0) mengembalikan nilai false.

  • Fungsi not(false) mengembalikan nilai true.

eq

Item

Deskripsi

Sintaks

eq(arg1, arg2)

Deskripsi

Membandingkan apakah dua nilai sama.

Parameter

  • arg1: nilai pertama untuk dibandingkan. Tipe data: semua tipe.

  • arg2: nilai kedua untuk dibandingkan. Tipe data: sama dengan parameter arg1.

Nilai kembali

Mengembalikan true jika kedua nilai sama dan mengembalikan false jika mereka tidak sama.

Contoh

key1 = 'value1'
key2 = 'value2'
if and($arg_k1, $arg_k2, eq(key1, $arg_k1), ne(key2, $arg_k2)) {
    say('match condition')
}
  • Jika permintaan mencakup parameter k1 dan k2, operasi perbandingan dilakukan.

  • Jika permintaan tidak mencakup parameter k1 atau k2, evaluasi singkat berlaku dan operasi perbandingan tidak dilakukan.

  • eq: apakah nilai dari parameter k1 sama dengan value1.

  • ne: apakah nilai dari parameter k2 tidak sama dengan value2.

  • Respons yang mencakup badan respons match condition hanya dikembalikan jika kondisi berikut terpenuhi: permintaan mencakup parameter k1 dan k2, nilai dari parameter k1 sama dengan value1, dan nilai dari parameter k2 tidak sama dengan value2.

ne

Item

Deskripsi

Sintaks

ne(arg1, arg2)

Deskripsi

Membandingkan apakah dua nilai tidak sama.

Parameter

  • arg1: nilai pertama untuk dibandingkan. Tipe data: semua tipe.

  • arg2: nilai kedua untuk dibandingkan. Tipe data: sama dengan parameter arg1.

Nilai kembali

Mengembalikan true jika kedua nilai tidak sama dan mengembalikan false jika mereka sama.

Contoh

key1 = 'value1'
key2 = 'value2'
if and($arg_k1, $arg_k2, eq(key1, $arg_k1), ne(key2, $arg_k2)) {
    say('match condition')
}
  • Jika permintaan mencakup parameter k1 dan k2, operasi perbandingan dilakukan.

  • Jika permintaan tidak mencakup parameter k1 atau k2, evaluasi singkat berlaku dan operasi perbandingan tidak dilakukan.

  • eq: apakah nilai dari parameter k1 sama dengan value1.

  • ne: apakah nilai dari parameter k2 tidak sama dengan value2.

  • Respons yang mencakup badan respons match condition hanya dikembalikan jika kondisi berikut terpenuhi: permintaan mencakup parameter k1 dan k2, nilai dari parameter k1 sama dengan value1, dan nilai dari parameter k2 tidak sama dengan value2.

null

Item

Deskripsi

Sintaks

null(v)

Deskripsi

Memeriksa apakah tipe data ditentukan untuk AScript.

Parameter

v: parameter untuk diteruskan. Tipe data: array, dictionary, atau string. Nilai salah dikembalikan untuk tipe data lainnya.

Nilai kembali

Tipe data: Boolean.

  • Nilai benar dikembalikan jika nilai v adalah array atau dictionary.

  • Nilai benar dikembalikan jika nilai v adalah string kosong.

  • Nilai salah dikembalikan jika v diatur ke tipe data lainnya.

Contoh

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

Keluaran:

true
false
false
true