Saya sedang mempelajari C++ baru-baru ini dan melihat penunjuk fungsi. Karena saya telah mengerjakan ASP sebelumnya, saya bertanya-tanya apakah ada penunjuk fungsi seperti itu di ASP. Saya mencari di Baidu dan menemukan bahwa tidak banyak pengenalan tentang aspek ini, jadi saya melihat-lihat manual VBScript dan tidak dapat menemukannya. Saya kecewa dan menemukan fungsi GetRef. Saya mengutip deskripsi fungsi GetRef di manual.
Mengembalikan referensi ke prosedur yang dapat diikatkan pada suatu peristiwa.
Setel objek.nama peristiwa = GetRef(namaproc)
parameter
obyek
Diperlukan. Nama objek yang terkait dengan peristiwa tersebut.
nama acara
Diperlukan. Nama acara yang akan diikat ke fungsi.
nama proc
Diperlukan. String ini berisi nama prosedur Sub atau Fungsi yang terkait dengan kejadian tersebut.
menjelaskan
Fungsi GetRef dapat digunakan untuk mengaitkan prosedur VBScript (Fungsi atau Sub) dengan peristiwa apa pun yang tersedia di halaman DHTML (HTML dinamis). Model objek DHTML memberikan informasi tentang berbagai peristiwa yang tersedia untuk objek berbeda.
Dalam bahasa skrip dan pemrograman lain, fungsionalitas yang disediakan oleh GetRef dikenal sebagai penunjuk fungsi, yaitu menunjuk ke alamat prosedur yang akan dijalankan ketika peristiwa tertentu terjadi.
Contoh berikut mengilustrasikan penggunaan fungsi GetRef:
Copy kode kodenya sebagai berikut:
<BAHASA SKRIP=VBScript>
Fungsi DapatkanRefTest()
Percikan redup
Splash = GetRefTest Versi 1.0 & vbCrLf
Splash = Splash & Chr(169) & Perusahaan Anda 1999
Percikan Kotak Pesan
Fungsi Akhir
Setel Jendela.Onload = GetRef(GetRefTest)
</SKRIP>
Ini mungkin berarti digunakan untuk mengikat event. Karena saya tidak tahu banyak tentang event di ASP, saya tidak akan membahas terlalu banyak tentang hubungan antara GetRef dan event di sini. Disini kita hanya mempelajari penggunaan GetRef pada aplikasi pengembangan WEB.
Pada PHP, PHP tidak mendukung pointer, sehingga teknologi fungsi pointer tidak dapat digunakan. PHP mendukung apa yang disebut variabel fungsi, yang dapat menetapkan fungsi ke suatu variabel, dan fungsinya mirip dengan penunjuk fungsi.
Contoh yang lebih sederhana:
Anda dapat melakukan ini di PHP
Copy kode kodenya sebagai berikut:
<?php
$nama fungsi = pemotongantr;
gema $namafungsi();
fungsi pemotongantr() {
fungsi pengembalian;
}
?>
Dengan GetRef, ASP juga dapat mengimplementasikan fungsi serupa di atas:
<%
nama fungsi redup
nama fungsi = cutstr
respon.Tulis(getref(nama fungsi))
fungsi cuttr()
cutstr = fungsi
fungsi akhir
%>
Aplikasi praktis:
Saat melakukan proyek manajemen latar belakang, seperti menambah, menghapus, mengubah berita, dan operasi lainnya diproses pada halaman yang sama. Umumnya, kami akan memasukkan tindakan lapangan tersembunyi dalam formulir, atau tindakan parameter URL, dan menentukan langkah mana operasi didasarkan pada nilai tindakan. Biasanya ditulis seperti ini:
pilih kasus request.querystring(aksi)
case add: 'Segmen kode yang akan dioperasikan....
modifikasi kasus : 'Segmen kode yang akan dioperasikan....
akhir pilih
Atau gunakan jika lain
Menggunakan variabel fungsi dapat membuat kode lebih ringkas dan jelas. Terlampir adalah contoh lengkap, yang merupakan operasi yang umum digunakan di latar belakang. Ubah, hapus, tambahkan.
Anda dapat menggunakan ?action=××× untuk menguji hasilnya
Copy kode kodenya sebagai berikut:
<%
pilihan eksplisit
redupkan array_action
'Nama modul hukum
array_action = array(daftar,tambah,tambah_form,modifikasi,modifikasi_form,del)
'Keluaran
respon.tulis(getref(aksi))
'Periksa apakah parameternya legal
tindakan fungsi()
redupkan str : str = permintaan.querystring(aksi)
tindakan = array_aksi(0)
jika arr_in(array_action,str) maka tindakan = str
fungsi akhir
'Bagian operasi ----------------------
daftar fungsi()
list = menampilkan informasi daftar
fungsi akhir
fungsi tambahan()
add = melakukan operasi penambahan
fungsi akhir
fungsi tambahkan_form()
add_form = tampilkan formulir tambahan
fungsi akhir
modifikasi fungsi()
memodifikasi = melakukan operasi modifikasi
fungsi akhir
'--------------------------------
'Periksa apakah itu ada di array
fungsi arr_in(a,v)
arr_in = salah
redupkan aku
jika isarray(a) maka
untuk setiap i dalam a
jika i = v maka : arr_in = true : keluar untuk : akhiri jika
Berikutnya
berakhir jika
fungsi akhir
%>
Banyak postingan yang membahas ASP, PHP, dan .NET. Mana yang lebih baik? Secara pribadi, menurut saya ini bukan masalah bahasa, tetapi masalah pemikiran bahasa yang Anda gunakan untuk menulisnya. Apakah efisien? Apakah kodenya ringkas dan jelas? Semua orang dipersilakan untuk berdiskusi!