Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencipta fungsi penutupan fungsi PHP?

Bagaimana untuk mencipta fungsi penutupan fungsi PHP?

WBOY
WBOYasal
2024-04-10 10:33:02865semak imbas

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) {
    // 函数体
};

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

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

使用 use 关键字

use

function outerFunction($arg1) {
    $outerVar = '外部变量';

    $closure = function() use ($arg1, $outerVar) {
        // 闭包函数可以访问 $arg1 和 $outerVar
    };
}

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 sebagai use dalam fungsi penutupan.
Gunakan kata kunci use

Kata kunci use digunakan 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);
}
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<br>";
        echo "outerVar: $outerVar<br>";
    };

    // 调用闭包函数
    $closure();
}

applyDiscount([10, 20, 30], 10); // [9, 18, 27]
🎜🎜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!

Kenyataan:
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 sebelumnya:Apakah kelebihan fungsi PHP?Artikel seterusnya:Apakah kelebihan fungsi PHP?