Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengubah Suai Pembolehubah Global daripada Dalam Fungsi Tanpa Nama dalam PHP?

Bagaimanakah Saya Boleh Mengubah Suai Pembolehubah Global daripada Dalam Fungsi Tanpa Nama dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-13 05:30:02
asal
991 orang telah melayarinya

How Can I Modify Global Variables from Within Anonymous Functions in PHP?

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";
});
Salin selepas log masuk

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";
});
Salin selepas log masuk

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!

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