Menggunakan Pembolehubah Dikira Di Luar Fungsi Panggilan Balik
Dalam PHP, adalah mungkin untuk mengira pembolehubah di luar fungsi panggil balik dan menggunakannya dalam fungsi tersebut. Mari kita pertimbangkan senario berikut:
Anda mempunyai tatasusunan $arr dan ingin menggunakan tatasusunan_penapis untuk mencipta tatasusunan baharu yang mengandungi hanya nilai kurang daripada purata elemen dalam $arr.
Untuk mencapai ini menggunakan fungsi panggil balik, anda mungkin menghadapi cabaran untuk mengira purata di luar fungsi dan menggunakannya dalam. Walau bagaimanapun, kata kunci penggunaan menyediakan penyelesaian.
Menggunakan Kata Kunci penggunaan
Kata kunci penggunaan membenarkan fungsi tanpa nama untuk mewarisi pembolehubah daripada skop induk. Dalam kes ini, anda boleh mentakrifkan fungsi panggil balik seperti berikut:
$avg = array_sum($arr) / count($arr); $callback = function($val) use ($avg) { return $val < $avg; };
Di sini, $avg diwarisi daripada skop induk menggunakan kata kunci use. Fungsi panggil balik kini boleh menggunakan $avg untuk menapis elemen.
return array_filter($arr, $callback);
Menggunakan Fungsi Anak Panah (PHP 7.4 atau Kemudian)
PHP 7.4 memperkenalkan fungsi anak panah, iaitu alternatif yang lebih ringkas kepada fungsi tanpa nama. Fungsi anak panah menangkap pembolehubah luar secara automatik, menghapuskan keperluan untuk digunakan.
Anda boleh menentukan fungsi panggil balik seperti berikut:
$callback = fn($val) => $val < $avg;
Penapisan Tatasusunan Ringkas dengan Fungsi Anak Panah
Memandangkan fungsi anak panah sangat ringkas, anda boleh membenamkannya terus dalam array_filter panggilan:
return array_filter($arr, fn($val) => $val < $avg);
Ringkasnya, penggunaan kata kunci atau fungsi anak panah membolehkan anda mengira pembolehubah di luar fungsi panggil balik dan menggunakannya di dalam, membolehkan operasi penapisan yang lebih fleksibel dan mudah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pembolehubah Dikira Di Luar Fungsi Panggilan Balik dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!