Rumah > pembangunan bahagian belakang > tutorial php > Cara menggunakan fungsi anak panah PHP untuk melaksanakan karier fungsi

Cara menggunakan fungsi anak panah PHP untuk melaksanakan karier fungsi

WBOY
Lepaskan: 2023-09-13 11:24:02
asal
693 orang telah melayarinya

如何利用 PHP 箭头函数实现函数的柯里化

Cara menggunakan fungsi anak panah PHP untuk melaksanakan kari fungsi

Kari ialah konsep pengaturcaraan berfungsi yang merujuk kepada menukar fungsi berbilang parameter kepada fungsi yang hanya menerima proses jujukan parameter tunggal. Dalam PHP, kita boleh menggunakan fungsi anak panah untuk melaksanakan karier fungsi, menjadikan kod lebih ringkas dan fleksibel.

Fungsi anak panah yang dipanggil ialah sintaks fungsi tanpa nama baharu yang diperkenalkan dalam PHP 7.4. Cirinya ialah ia boleh menangkap pembolehubah luaran dan hanya mempunyai satu ungkapan sebagai badan fungsi, tanpa kata kunci pulangan.

Yang berikut menggunakan contoh kod khusus untuk menunjukkan cara menggunakan fungsi anak panah untuk melaksanakan kari fungsi.

// 定义一个普通的加法函数
$add = function ($a, $b) {
    return $a + $b;
};

// 定义一个柯里化的函数
$curry = function ($func) {
    return fn($a) => fn($b) => $func($a, $b);
};

// 使用柯里化的方式调用加法函数
$curriedAdd = $curry($add);

// 调用方式1
$result = $curriedAdd(1)(2); // 3
echo $result . "
";

// 调用方式2
$add2 = $curriedAdd(2); // 固定参数 a = 2
$result = $add2(3); // 5
echo $result . "
";

// 调用方式3
$add5 = $curriedAdd(5); // 固定参数 a = 5
$result = $add5(6); // 11
echo $result . "
";
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan fungsi tambahan biasa $add. Kemudian, kami mentakrifkan fungsi $curry yang menerima fungsi sebagai hujah dan mengembalikan fungsi kari. $add。然后,我们定义了一个 $curry 函数,它接受一个函数作为参数,并返回一个柯里化的函数。

柯里化的函数是通过箭头函数来实现的。它接受一个参数 $a,并返回一个匿名函数,这个匿名函数接受另一个参数 $b,并调用原始函数 $func 来计算结果。

在定义了柯里化的函数之后,我们可以通过调用 $curry 函数来传入原始函数,并得到一个柯里化的函数。

在调用柯里化的函数时,我们可以使用两种方式:

  1. 直接连续调用,将参数逐个传入。例如 $curriedAdd(1)(2),先传入 1,再传入 2,得到最终的结果 3。
  2. 先传入部分参数,返回一个新的函数,然后再传入剩余的参数。例如 $add2 = $curriedAdd(2)
  3. Fungsi kari dilaksanakan melalui fungsi anak panah. Ia menerima satu parameter $a dan mengembalikan fungsi tanpa nama yang menerima parameter lain $b dan memanggil fungsi asal $func untuk mengira hasilnya.

Selepas mentakrifkan fungsi kari, kita boleh memasukkan fungsi asal dan mendapatkan fungsi kari dengan memanggil fungsi $curry.

Apabila memanggil fungsi kari, kita boleh menggunakan dua kaedah:

  1. Panggilan berterusan terus dan hantar parameter satu demi satu. Contohnya, $curriedAdd(1)(2), mula-mula lulus dalam 1, kemudian 2, dan dapatkan keputusan akhir 3. 🎜
  2. Laluan pertama dalam beberapa parameter, kembalikan fungsi baharu, dan kemudian masukkan parameter yang tinggal. Contohnya, $add2 = $curriedAdd(2), mula-mula lulus dalam 2, kembalikan fungsi baharu, kemudian lulus dalam 3, dan dapatkan hasil akhir 5. 🎜🎜🎜Melalui kaedah kari ini, kita boleh mencipta fungsi baharu dengan mudah, membetulkan beberapa parameter dan melambatkan penghantaran parameter yang tinggal. Ini berguna apabila membina kombinasi fungsi yang kompleks atau apabila berurusan dengan fungsi panggil balik. 🎜🎜Menggunakan fungsi anak panah PHP untuk melaksanakan karier fungsi boleh menjadikan kod lebih jelas, ringkas dan boleh dibaca serta meningkatkan kebolehselenggaraan dan kebolehgunaan semula kod. Walau bagaimanapun, dalam pembangunan sebenar, anda perlu memilih sama ada untuk menggunakan karipap berdasarkan keadaan tertentu untuk mengelakkan penggunaan berlebihan yang menyebabkan kod sukar difahami. 🎜

Atas ialah kandungan terperinci Cara menggunakan fungsi anak panah PHP untuk melaksanakan karier fungsi. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan