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
Mary-Kate Olsenasal
2024-12-14 20:33:41782semak imbas

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);

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;

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

return array_filter($arr, fn($val) => $val < $avg);

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!

Kenyataan:
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