Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ฟังก์ชัน PHP ไม่ระบุชื่อ


แนะนำตัว

ฟังก์ชันนิรนามเป็นฟังก์ชันที่ไม่มีชื่อที่ผู้ใช้กำหนด ฟังก์ชันดังกล่าวเรียกอีกอย่างว่า ปิด หรือ แลมบ์ดา การทำงาน. บางครั้ง คุณอาจต้องการฟังก์ชันสำหรับใช้ครั้งเดียว การปิดเป็นฟังก์ชันที่ไม่ระบุชื่อซึ่งปิดเหนือสภาพแวดล้อมที่กำหนดไว้ คุณต้องระบุคีย์เวิร์ด 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