Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Barbara Streisandasal
2024-11-13 05:30:02930semak imbas

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

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!

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