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?

Patricia Arquette
Lepaskan: 2024-11-19 00:44:02
asal
999 orang telah melayarinya

How Can I Modify a Global Variable from Within an Anonymous Function in PHP?

Mengakses Pembolehubah Skop Global Dalam Fungsi Tanpa Nama

Dalam PHP, fungsi tanpa nama lazimnya mewarisi skop tempatan fungsi lampiran atau skop global jika ditakrifkan di luar mana-mana fungsi. Walau bagaimanapun, apabila anda cuba mengubah suai pembolehubah berskop global dari dalam fungsi tanpa nama, anda mungkin menghadapi masalah.

Mengubah Suai Pembolehubah Skop Global

Pertimbangkan contoh berikut:

$variable = "nothing";

functionName($someArgument, function() {
  $variable = "something";
});

echo $variable;  // Output: "nothing"
Salin selepas log masuk

Walaupun cuba mengubah suai $variable dalam fungsi tanpa nama, output kekal "tiada apa-apa." Ini kerana fungsi tanpa nama mencipta skopnya sendiri dan tidak mewarisi skop global secara langsung.

Penyelesaian: Penutupan

Untuk menangani had ini, anda boleh menggunakan penutupan. Penutupan membolehkan anda menangkap pembolehubah daripada skop yang disertakan ke dalam skop baharu. Untuk mengubah suai pembolehubah berskop global dari dalam fungsi tanpa nama, gunakan sintaks berikut:

functionName($someArgument, function() use (&$variable) {
  $variable = "something";
});
Salin selepas log masuk

Dengan mendahului penggunaan sebelum nama pembolehubah dan merujuknya dengan &, anda membuat penutupan yang menangkap pembolehubah melalui rujukan, membenarkan pengubahsuaian dalam fungsi tanpa nama.

Kesimpulan

Menggunakan penutupan membolehkan anda mengakses dan mengubah suai pembolehubah berskop global dari dalam fungsi tanpa nama, mengatasi batasan mencipta yang baharu skop dalam fungsi tanpa nama. Dengan menangkap pembolehubah melalui rujukan, anda boleh melakukan pengubahsuaian yang akan berterusan di luar skop 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