全部产品
Search
文档中心

Edge Security Acceleration:Fungsi logika

更新时间:Jun 21, 2025

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

and

Tabel berikut menjabarkan detail dari fungsi ini.

Item

Deskripsi

Sintaks

and(arg, ...)

Deskripsi

  • Menjalankan operator logika AND.

  • Evaluasi singkat didukung. Saat suatu nilai dievaluasi sebagai salah, nilai-nilai yang mengikuti nilai tersebut tidak dievaluasi.

Parameter

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

Nilai balikan

Mengembalikan true jika semua nilai dievaluasi sebagai benar dan mengembalikan false jika suatu nilai dievaluasi sebagai 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 disetel karena fungsi and() mengembalikan nilai salah.

or

Tabel berikut menjabarkan detail dari fungsi ini.

Item

Deskripsi

Sintaks

or(arg, ...)

Deskripsi

  • Menjalankan operator logika OR.

  • Evaluasi singkat didukung. Saat suatu nilai dievaluasi sebagai benar, nilai-nilai yang mengikuti nilai tersebut tidak dievaluasi.

Parameter

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

Nilai balikan

Mengembalikan true jika suatu nilai dievaluasi sebagai benar dan mengembalikan false jika semua nilai dievaluasi sebagai salah.

Contoh

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

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

not

Tabel berikut menjabarkan detail dari fungsi ini.

Item

Deskripsi

Sintaks

not(arg)

Deskripsi

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

Parameter

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

Nilai balikan

  • 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 salah.

  • Fungsi not(false) mengembalikan nilai benar.

eq

Tabel berikut menjabarkan detail dari fungsi ini.

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 balikan

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 parameter k1 sama dengan value1.

  • ne: apakah nilai 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 parameter k1 sama dengan value1, dan nilai parameter k2 tidak sama dengan value2.

ne

Tabel berikut menjabarkan detail dari fungsi ini.

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 balikan

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 parameter k1 sama dengan value1.

  • ne: apakah nilai 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 parameter k1 sama dengan value1, dan nilai parameter k2 tidak sama dengan value2.

null

Tabel berikut menjabarkan detail dari fungsi ini.

Item

Deskripsi

Sintaks

null(v)

Deskripsi

Memeriksa apakah tipe data ditentukan untuk EdgeScript (ES).

Parameter

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

Nilai balikan

Tipe data: Boolean.

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

  • Nilai benar dikembalikan jika nilai v adalah string kosong.

  • Nilai salah dikembalikan jika v disetel 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