⊗ppSpFnCb 11 of 83 menu

Fungsi Panggilan Balik dalam PHP

Panggilan balik ialah fungsi, yang disampaikan sebagai parameter kepada fungsi lain.

Mari kita lihat contoh. Katakan kita mempunyai fungsi yang menerima nombor sebagai parameter pertama, dan panggilan balik sebagai parameter kedua:

<?php function func($num, $calb) { } ?>

Mari kita buat supaya di dalam fungsi panggilan balik kita dipanggil untuk nombor yang disampaikan:

<?php function func($num, $calb) { echo $calb($num); } ?>

Sekarang mari kita lihat, apakah pilihan untuk menyampaikan panggilan balik ke fungsi kita.

Pilihan 1

Panggilan balik kita boleh menjadi fungsi biasa:

<?php function calb($num) { return $num ** 2; } ?>

Dalam kes ini, sebagai panggilan balik kita akan menyampaikan nama fungsi kita:

<?php func(3, 'calb'); ?>

Di dalam fungsi func panggilan balik kita akan dipanggil mengikut nama.

Pilihan 2

Panggilan balik kita boleh menjadi fungsi tanpa nama, yang direkodkan dalam pembolehubah:

<?php $calb = function($num) { return $num ** 2; }; ?>

Dalam kes ini, kita menyampaikan parameter pembolehubah dengan fungsi kita:

<?php func(3, $calb); ?>

Pilihan 3

Boleh menyampaikan fungsi tanpa nama terus sebagai parameter:

<?php func(3, function($num) { return $num ** 2; }); ?>

Pilihan 4

Boleh memendekkan kod, menggunakan fungsi anak panah:

<?php func(3, fn($num) => $num ** 2); ?>

Masalah Praktikal

Diberi fungsi, yang menerima array sebagai parameter dan panggilan balik, yang akan digunakan pada setiap elemen array:

<?php function func($arr, $calb) { $res = []; foreach ($arr as $elem) { $res[] = $calb($elem); } return $res; } ?>

Panggil fungsi ini, dengan menyampaikan array yang mengandungi nombor dan panggilan balik sebagai parameter, yang mengkuadratkan nombor yang disampaikan.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak