Untuk menggunakan fungsi sebagai panggil balik dalam PHP, anda boleh menggunakan fungsi tanpa nama atau fungsi bernama. Sintaks fungsi tanpa nama ialah: $callback = function ($argument) { return $result }. Fungsi bernama mempunyai nama dan ditakrifkan seperti fungsi biasa. Fungsi terbina dalam yang biasa digunakan menerima panggilan balik sebagai parameter, seperti array_map(), array_filter(), usort(). Dalam kes praktikal, anda boleh menggunakan fungsi panggil balik untuk menentukan peraturan pengesahan tersuai dan menyerahkannya kepada fungsi pengesahan, seperti panggilan balik pengesahan e-mel: function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL }.
Cara menggunakan fungsi sebagai panggilan balik dalam PHP
Fungsi panggil balik ialah fungsi yang dipanggil dalam fungsi lain. Dalam PHP, anda boleh menggunakan fungsi tanpa nama (penutupan) atau menamakan fungsi sebagai panggilan balik.
Gunakan fungsi tanpa nama sebagai panggilan balik
Fungsi tanpa nama ialah fungsi tanpa nama yang boleh dibuat apabila diperlukan. Untuk mencipta fungsi tanpa nama, gunakan sintaks berikut:
$callback = function ($argument) { return $result; };
Sebagai contoh, buat fungsi panggil balik yang menambah 5 pada nombor:
$add5 = function ($num) { return $num + 5; };
Gunakan fungsi bernama sebagai panggilan balik
Fungsi bernama ialah fungsi yang mempunyai nama dan boleh digunakan seperti fungsi biasa Definisi yang sama. Untuk menggunakan fungsi bernama sebagai panggilan balik, berikan nama fungsi tersebut.
Contohnya, buat fungsi panggil balik yang menduakan nombor dan tambah 10:
function squareAndAdd10($num) { return $num * $num + 10; }
Panggil fungsi yang menggunakan panggilan balik
Terdapat beberapa fungsi terbina dalam yang menerima panggilan balik sebagai argumen, contohnya:
array_map()</ code>: Gunakan panggilan balik pada setiap elemen dalam tatasusunan</li><li><code>array_filter()
: Tapis elemen tatasusunan, mengembalikan BENAR atau FALSE mengikut hasil panggilan balikarray_map()
: 将回调应用于数组中的每个元素array_filter()
: 过滤数组元素,根据回调的结果返回 TRUE 或 FALSEusort()
: 根据回调中定义的排序条件对数组进行排序例如,使用 array_map()
将 $add5
回调应用到数组 $numbers
:
$numbers = [1, 2, 3, 4, 5]; $result = array_map($add5, $numbers);
此时,$result
将包含 [6, 7, 8, 9, 10]
。
实战案例
使用回调函数的一个常见例子是添加自定义验证规则。假设你有一个处理表单的函数,你想验证表单字段的值。你可以使用回调来定义自定义验证规则,并将该规则传递给验证函数。
例如,创建一个回调来验证 email 地址:
function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL); }
然后,你可以将此回调传递给表单验证函数:
$validator = new FormValidator(); $validator->addRule('email', 'validateEmail');
现在,FormValidator
将会使用 validateEmail
array_map() untuk menambah <code>$add5
Panggilan balik digunakan pada tatasusunan $numbers
:🎜rrreee🎜Pada ketika ini, $result
akan mengandungi [6, 7, 8, 9, 10]. 🎜🎜🎜Kes Praktikal🎜🎜🎜Contoh biasa menggunakan fungsi panggil balik ialah menambah peraturan pengesahan tersuai. Katakan anda mempunyai fungsi yang mengendalikan borang dan anda ingin mengesahkan nilai medan borang. Anda boleh menggunakan panggil balik untuk mentakrifkan peraturan pengesahan tersuai dan lulus peraturan itu kepada fungsi pengesahan. 🎜🎜Sebagai contoh, buat panggilan balik untuk mengesahkan alamat e-mel: 🎜rrreee🎜Anda kemudian boleh menghantar panggilan balik ini ke fungsi pengesahan borang: 🎜rrreee🎜Sekarang, FormValidator
akan menggunakan validateEmail kod> Panggilan balik untuk mengesahkan alamat e-mel. 🎜
Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi sebagai panggilan balik dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!