⊗ppSpFnIFC 12 of 83 menu

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

ใน PHP มีฟังก์ชันในตัวหลายฟังก์ชัน ที่รับพารามิเตอร์เป็นคอลแบ็ก เราจะศึกษาหลักการทำงานทั่วไปกับฟังก์ชันเหล่านี้ โดยใช้ตัวอย่างของฟังก์ชัน array_map ฟังก์ชันนี้รับพารามิเตอร์แรกเป็นคอลแบ็ก และพารามิเตอร์ที่สองเป็นอาร์เรย์ ฟังก์ชันจะนำคอลแบ็ก ไปใช้กับแต่ละองค์ประกอบของอาร์เรย์ และส่งคืนอาร์เรย์ที่ถูกเปลี่ยนแปลง

ลองดูตัวเลือกต่างๆ ของการใช้ฟังก์ชันนี้โดยคำนึงถึง ความรู้ที่เราได้รับมาก่อนหน้านี้

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

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

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map('sqrt', $arr); var_dump($res); ?>

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

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

<?php $arr = [1, 2, 3, 4, 5]; function func($num) { return $num ** 2; } $res = array_map('func', $arr); var_dump($res); ?>

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

ปรับเปลี่ยนฟังก์ชันของเราให้เป็นฟังก์ชันไม่ระบุชื่อ (anonymous) ที่บันทึกไว้ในตัวแปร:

<?php $arr = [1, 2, 3, 4, 5]; $func = function ($num) { return $num ** 2; }; $res = array_map($func, $arr); var_dump($res); ?>

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

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

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(function ($num) { return $num ** 2; }, $arr); var_dump($res); ?>

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

ใช้ฟังก์ชันลูกศร (arrow function):

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(fn ($num) => $num ** 2, $arr); var_dump($res); ?>

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

ให้ระดับกำลัง (เลขชี้กำลัง) ที่ต้อง นำตัวเลขมายกกำลัง ถูกกำหนดโดยตัวแปรภายนอก ของคอลแบ็ก ลองใช้ตัวแปรนี้ โดยเข้าถึงมันผ่าน use:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(function ($num) use ($pow) { return $num ** $pow; }, $arr); var_dump($res); ?>

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

เขียนโค้ดก่อนหน้าใหม่ผ่านฟังก์ชันลูกศร ตอนนี้ตัวแปร $pow จะสามารถใช้งานได้โดยอัตโนมัติ:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(fn ($num) => $num ** $pow, $arr); var_dump($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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ