Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengakses Pembolehubah Luaran Di Dalam Fungsi Panggilan Balik PHP?

Bagaimanakah Saya Boleh Mengakses Pembolehubah Luaran Di Dalam Fungsi Panggilan Balik PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-14 20:33:41
asal
779 orang telah melayarinya

How Can I Access External Variables Inside PHP Callback Functions?

Mengakses Pembolehubah Luaran dalam Fungsi Panggilan Balik

Dalam PHP, selalunya diperlukan untuk menggunakan fungsi panggil balik bersama-sama dengan pembolehubah yang dikira di luar fungsi skop. Senario ini menimbulkan persoalan: Adakah mungkin untuk mengakses pembolehubah sedemikian dalam panggilan balik?

Gunakan Kata Kunci dan Fungsi Anak Panah

Nasib baik, PHP menyediakan penyelesaian melalui penggunaan kata kunci. Anda boleh mewarisi pembolehubah daripada skop induk dengan mendahului definisi panggil balik dengan penggunaan. Contohnya:

$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$avg = array_sum($arr) / count($arr);
$callback = function($val) use ($avg) { return $val < $avg; };

return array_filter($arr, $callback);
Salin selepas log masuk

Untuk PHP versi 7.4 dan lebih baru, fungsi anak panah menawarkan pendekatan yang lebih elegan. Fungsi anak panah menangkap pembolehubah luar secara automatik:

$callback = fn($val) => $val < $avg;
Salin selepas log masuk

Dalam panggilan array_filter, anda boleh terus menggunakan fungsi anak panah:

return array_filter($arr, fn($val) => $val < $avg);
Salin selepas log masuk

Dengan memanfaatkan penggunaan kata kunci atau fungsi anak panah, ia menjadi mudah untuk mengakses pembolehubah luaran dalam fungsi panggil balik dalam PHP.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Luaran Di Dalam Fungsi Panggilan Balik PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan