Menggunakan Fungsi Lambda untuk Mengakses Pembolehubah Luaran
Dalam PHP, adalah mungkin untuk mengakses pembolehubah luaran dalam fungsi lambda, memberikan fleksibiliti dalam pemprosesan data . Walau bagaimanapun, memahami nuansa penangkapan pembolehubah adalah penting.
Pertimbangkan coretan kod:
function fetch($query, $func) { $query = mysql_query($query); while($r = mysql_fetch_assoc($query)) { $func($r); } } fetch("SELECT title FROM tbl", function($r){ //> $r['title'] contains the title });
Kod ini membolehkan kami memproses baris pangkalan data menggunakan fungsi yang disediakan. Walau bagaimanapun, jika kami perlu mengagregatkan data daripada berbilang baris, kami boleh menggunakan kata kunci use dalam fungsi lambda.
$result = ''; fetch("SELECT title FROM tbl", function($r) use (&$result) { $result .= $r['title']; }); echo $result;
Dengan menambahkan penggunaan (&$result), kami memberitahu fungsi lambda untuk menggunakan luaran $result variable dan luluskannya dengan rujukan (&). Ini membolehkan kami menggabungkan nilai daripada setiap baris menjadi pembolehubah tunggal.
Perlu ambil perhatian bahawa fungsi lambda menggunakan pengikatan awal, menangkap nilai pembolehubah luaran apabila fungsi itu ditakrifkan, bukan apabila ia dipanggil. Ini boleh membawa kepada tingkah laku yang tidak dijangka apabila pembolehubah luaran menukar nilai antara pengisytiharan dan pemanggilan.
Atas ialah kandungan terperinci Bagaimanakah Lambda Boleh Berfungsi dalam PHP Mengakses dan Mengubah Suai Pembolehubah Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!