Mengakses Pembolehubah Global Dalam Fungsi Tanpa Nama
Dalam PHP, fungsi tanpa nama sememangnya kekurangan akses kepada pembolehubah global. Ini boleh menimbulkan cabaran apabila cuba memanipulasi pembolehubah luaran dari dalam fungsi tanpa nama ini.
Contoh:
Pertimbangkan kod berikut:
$variable = "nothing"; functionName($someArgument, function() { $variable = "something"; });
Setelah melaksanakan kod ini, $variable kekal "tiada apa-apa" kerana fungsi tanpa nama tidak boleh mengakses skop global.
Penyelesaian: Penutupan
Untuk menangani isu ini, PHP memperkenalkan konsep penutupan. Penutupan membenarkan manipulasi pembolehubah daripada skop tertutup dalam fungsi tanpa nama. Untuk membuat penutupan, tambahkan kata kunci penggunaan pada pengisytiharan fungsi tanpa nama:
functionName($someArgument, function() use(&$variable) { $variable = "something"; });
Dalam kes ini, kata kunci penggunaan disertakan dengan ampersand (&), menunjukkan bahawa pembolehubah $variable akan diluluskan oleh rujukan. Ini membolehkan fungsi tanpa nama mengubah suai $variable global.
Nota: Adalah penting untuk menggunakan ampersand (&) apabila merujuk pembolehubah dalam penutupan untuk memastikan pembolehubah global diubah suai , dan perubahan ditunjukkan di luar fungsi tanpa nama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Pembolehubah Global daripada Dalam Fungsi Tanpa Nama dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!