Bagaimanakah Lambda Boleh Berfungsi dalam PHP Mengakses dan Mengubah Suai Pembolehubah Luaran?

Linda Hamilton
Lepaskan: 2024-11-11 12:26:03
asal
867 orang telah melayarinya

How Can Lambda Functions in PHP Access and Modify External Variables?

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

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

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!

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