Bagaimana untuk mencipta fungsi penutupan fungsi PHP?

WBOY
Lepaskan: 2024-04-10 10:33:02
asal
852 orang telah melayarinya

Fungsi penutupan dalam PHP ialah fungsi tanpa nama yang bersarang dalam fungsi lain yang boleh mengakses pembolehubah fungsi luar. Kata kunci penggunaan boleh digunakan untuk mengakses pembolehubah luaran dalam fungsi penutupan, yang boleh digunakan dalam senario sebenar di mana diskaun perlu digunakan pada setiap elemen dalam senarai.

PHP 函数的闭包函数如何创建?

Fungsi penutupan dalam fungsi PHP

Fungsi penutupan ialah fungsi tanpa nama yang bersarang dalam fungsi lain yang boleh mengakses pembolehubah fungsi luar, walaupun fungsi luar telah kembali. Fungsi penutupan sangat berguna dalam PHP kerana ia membenarkan mencipta blok kod yang boleh digunakan semula dan mengekalkan akses kepada persekitaran luaran.

Mencipta fungsi penutupan

Untuk mencipta fungsi penutupan dalam PHP, gunakan kata kunci fungsi, diikuti dengan nama pilihan dan senarai argumen: function关键字,后跟一个可选的名称和参数列表:

$closure = function($arg1, $arg2) { // 函数体 };
Salin selepas log masuk

闭包函数中的变量范围规则如下:

  • 闭包函数可以访问在其定义位置作用域中声明的所有变量,包括局部变量和参数。
  • 闭包函数不能访问它嵌套在其中的函数之外声明的变量,除非这些变量在闭包函数中被显式地声明为use

使用use关键字

use

function outerFunction($arg1) { $outerVar = '外部变量'; $closure = function() use ($arg1, $outerVar) { // 闭包函数可以访问 $arg1 和 $outerVar }; }
Salin selepas log masuk

Pembolehubah dalam fungsi penutupan Peraturan skop ialah seperti berikut:

  • Fungsi penutupan boleh mengakses semua pembolehubah yang diisytiharkan dalam skop di mana ia ditakrifkan, termasuk pembolehubah dan parameter tempatan.
  • Fungsi penutupan tidak boleh mengakses pembolehubah yang diisytiharkan di luar fungsi di mana ia bersarang, melainkan pembolehubah ini diisytiharkan secara eksplisit sebagaiusedalam fungsi penutupan.
Gunakan kata kunci use

Kata kunci usedigunakan untuk memperkenalkan pembolehubah luaran ke dalam fungsi penutupan. Contohnya:

function applyDiscount($list, $discountPercentage) { // 创建闭包函数来计算折扣 $discountClosure = function($item) use ($discountPercentage) { return $item - ($item * ($discountPercentage / 100)); }; // 将折扣闭包函数应用于列表中的每个元素 return array_map($discountClosure, $list); }
Salin selepas log masuk
Contoh Praktikal

Andaikan anda perlu mencipta fungsi yang menggunakan diskaun untuk setiap elemen dalam senarai. Untuk melakukan ini, anda boleh mencipta fungsi penutupan untuk mengira jumlah diskaun:
function outerFunction($arg1) { $outerVar = '外部变量'; $closure = function() use ($arg1, $outerVar) { // 闭包函数可以访问 $arg1 和 $outerVar echo "arg1: $arg1
"; echo "outerVar: $outerVar
"; }; // 调用闭包函数 $closure(); } applyDiscount([10, 20, 30], 10); // [9, 18, 27]
Salin selepas log masuk
Kod penuh: rrreee

Atas ialah kandungan terperinci Bagaimana untuk mencipta fungsi penutupan fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!