⊗ppSpFnCb 11 of 83 menu

ฟังก์ชันคอลแบ็กใน PHP

คอลแบ็ก คือฟังก์ชัน ที่ถูกส่งผ่านเป็นพารามิเตอร์ไปยังฟังก์ชันอื่น

ลองดูตัวอย่าง สมมติว่าเรามีฟังก์ชันที่ รับพารามิเตอร์แรกเป็นตัวเลข และพารามิเตอร์ที่สองเป็นคอลแบ็ก:

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

มาทำให้ภายในฟังก์ชัน คอลแบ็กของเราถูกเรียกใช้สำหรับตัวเลขที่ส่งมา

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

ตอนนี้เรามาดูว่ามี ตัวเลือกใดบ้างในการส่งคอลแบ็กไปยังฟังก์ชันของเรา

ตัวเลือกที่ 1

คอลแบ็กของเราสามารถเป็น ฟังก์ชันทั่วไป:

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

ในกรณีนี้ ในฐานะคอลแบ็ก เราจะส่งชื่อของฟังก์ชันของเรา:

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

ภายในฟังก์ชัน func คอลแบ็กของเราจะถูกเรียกโดยใช้ชื่อ

ตัวเลือกที่ 2

คอลแบ็กของเราสามารถเป็นฟังก์ชันที่ไม่ระบุชื่อ ที่เก็บไว้ในตัวแปร:

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

ในกรณีนี้ เราส่งพารามิเตอร์เป็น ตัวแปรที่มีฟังก์ชันของเรา:

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

ตัวเลือกที่ 3

สามารถส่งฟังก์ชันที่ไม่ระบุชื่อ เป็นพารามิเตอร์ได้ทันที:

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

ตัวเลือกที่ 4

สามารถย่อโค้ดได้โดยใช้ ฟังก์ชันลูกศร:

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

โจทย์ปฏิบัติ

กำหนดฟังก์ชันที่รับพารามิเตอร์เป็น อาร์เรย์และคอลแบ็ก ซึ่งจะถูกนำไปใช้ กับแต่ละองค์ประกอบของอาร์เรย์:

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

เรียกใช้ฟังก์ชันนี้ โดยส่งพารามิเตอร์ เป็นอาร์เรย์ที่มีตัวเลขและคอลแบ็ก ที่ยกกำลังสองของตัวเลขที่ส่งมา

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ