แนะนำตัว
ฟังก์ชันนิรนามเป็นฟังก์ชันที่ไม่มีชื่อที่ผู้ใช้กำหนด ฟังก์ชันดังกล่าวเรียกอีกอย่างว่า ปิด หรือ แลมบ์ดา การทำงาน. บางครั้ง คุณอาจต้องการฟังก์ชันสำหรับใช้ครั้งเดียว การปิดเป็นฟังก์ชันที่ไม่ระบุชื่อซึ่งปิดเหนือสภาพแวดล้อมที่กำหนดไว้ คุณต้องระบุคีย์เวิร์ด use ในนั้น การใช้งานฟังก์ชันที่ไม่ระบุชื่อโดยทั่วไปส่วนใหญ่เพื่อสร้างฟังก์ชันการโทรกลับแบบอินไลน์
ไวยากรณ์
$var=function ($arg1, $arg2) { return $val; };
- ไม่มีชื่อฟังก์ชันระหว่างคีย์เวิร์ดของฟังก์ชันและวงเล็บเปิด
- มีเครื่องหมายอัฒภาคหลังการกำหนดฟังก์ชันเนื่องจากคำจำกัดความของฟังก์ชันที่ไม่ระบุตัวตนคือนิพจน์
- ฟังก์ชันถูกกำหนดให้กับตัวแปร และเรียกในภายหลังโดยใช้ชื่อของตัวแปร
- เมื่อส่งต่อไปยังฟังก์ชันอื่นที่สามารถเรียกใช้งานได้ในภายหลัง จะเรียกว่าการเรียกกลับ
- ส่งคืนจากภายในฟังก์ชันภายนอกเพื่อให้สามารถเข้าถึงตัวแปรของฟังก์ชันภายนอกได้ สิ่งนี้เรียกว่าการปิด
ตัวอย่างฟังก์ชันที่ไม่ระบุชื่อ
ตัวอย่าง
<?php $var = function ($x) {return pow($x,3);}; echo "cube of 3 = " . $var(3); ?>
ผลลัพธ์
ซึ่งจะให้ผลลัพธ์ตามมา −
cube of 3 = 27
ฟังก์ชันไม่ระบุชื่อเป็นการโทรกลับ
ในตัวอย่างต่อไปนี้ ฟังก์ชันที่ไม่ระบุชื่อถูกใช้เป็นอาร์กิวเมนต์สำหรับฟังก์ชัน usort() ในตัว ฟังก์ชัน usort() จัดเรียงอาร์เรย์ที่กำหนดโดยใช้ฟังก์ชันเปรียบเทียบ
ตัวอย่าง
<?php $arr = [10,3,70,21,54]; usort ($arr, function ($x , $y) { return $x > $y; }); foreach ($arr as $x){ echo $x . "\n"; } ?>
ผลลัพธ์
ซึ่งจะให้ผลลัพธ์ตามมา −
3 10 21 54 70
ฟังก์ชันไม่ระบุชื่อเป็นการปิด
การปิดยังเป็นฟังก์ชันที่ไม่ระบุตัวตนที่สามารถเข้าถึงตัวแปรนอกขอบเขตด้วยความช่วยเหลือของคำหลักที่ใช้
ตัวอย่าง
<?php $maxmarks=300; $percent=function ($marks) use ($maxmarks) {return $marks*100/$maxmarks;}; echo "marks=285 percentage=". $percent(285); ?>
ผลลัพธ์
ซึ่งจะให้ผลลัพธ์ตามมา −
marks=285 percentage=95