Bagaimanakah saya boleh mengakses dan mengubah suai pembolehubah luaran dalam fungsi tanpa nama dalam PHP?

DDD
Lepaskan: 2024-11-14 17:56:02
asal
795 orang telah melayarinya

How can I access and modify external variables within an anonymous function in PHP?

Menggunakan Fungsi Tanpa Nama sebagai Parameter untuk Mengakses Pembolehubah Luaran

Senario ini melibatkan fungsi berguna yang memproses baris pangkalan data dengan mudah. Walau bagaimanapun, keperluan khusus timbul di mana anda perlu menggabungkan semua tajuk daripada keputusan yang ditetapkan ke dalam pembolehubah tunggal. Ini menimbulkan persoalan tentang cara untuk mencapainya tanpa bergantung pada pendekatan yang kurang elegan menggunakan kata kunci global.

Satu penyelesaian terletak pada penggunaan pembolehubah penutupan. Khususnya, kata kunci penggunaan membenarkan penutupan untuk mewarisi pembolehubah daripada skop induk. Ini berbeza daripada pembolehubah global, yang berterusan merentas semua fungsi.

Untuk melaksanakan penyelesaian ini, kod boleh diubah suai seperti berikut:

$result = '';
fetch("SELECT title FROM tbl", function($r) use (&$result) {
   $result .= $r['title'];
});
Salin selepas log masuk

Dengan menambahkan penggunaan (&$result) pada fungsi tanpa nama, kami dapat merujuk dan mengubah suai pembolehubah hasil dari dalam fungsi. Kata kunci penggunaan secara berkesan menghantar rujukan kepada pembolehubah hasil kepada penutupan.

Adalah penting untuk ambil perhatian bahawa pendekatan ini melibatkan pengikatan awal, yang bermaksud bahawa penutupan menggunakan nilai pembolehubah pada titik pengisytiharan fungsi, bukan pada titik panggilan fungsi (pengikatan lewat). Perkara ini perlu diingat apabila menggunakan penutupan untuk tujuan ini.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengakses dan mengubah suai pembolehubah luaran 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan