PHP Callback Functions

callback function เป็นการโทร เรียกหากัน หรือเรียกกลับ ซึ่งรูปแบบของการ callback โดยปกตินั้นคือ

ตัวอย่าง callback function เบื้องต้น

<?php
function myFunction($value){
    return $value;
}
?>

ซึ่งใน PHP เวอร์ชันตั้งแต่ 7 เป็นต้นไปสามารถใช้งาน calback function  โดยที่ไม่ต้องเรียกชื่อฟังก์ชัน โดยใช้ array_map() ดังตัวอย่างที่ 1

ตัวอย่างที่ 1 array_map()

<?php
$strings = ["apple", "orange", "banana", "coconut"];

$lengths = array_map( function($item) { 
    return strlen($item); 
  } , $strings);

print_r($lengths);
?>

ไฟล์ที่ 1 array_map()

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

 

ตัวอย่างที่ 2 

<?php
function exclaim($str) {
  return $str;
}

function ask($str) {
  return $str;
}

function callFunction($format, $str) {
  // Calling the $format callback function
  echo $format($str);
}

// Pass "exclaim" and "ask" as callback functions to printFormatted()
callFunction("exclaim", "My name's : ");
callFunction("ask", "Pawin");
?>

ไฟล์ที่ 2 สร้างฟังก์ชันเพื่อกำหนดรูปแบบเรียกใช้ฟังก์ชัน

จากไฟล์ที่ 2 จะสังเกตได้ว่า มีการสร้างฟังก์ชัน 1 ขึ้นมา ซึ่งในตัวอย่างกำหนดชื่อฟังก์ชันว่า callFunction() เพื่อใช้ในการกำหนดรูปแบบเรียกใช้ฟังก์ชันอื่น โดยกำหนดอาร์กิวเมนต์ 2 ตัว ตัวที่ 1 ชื่อฟังก์ชั่น และตัวที่ 2 แทนค่าพารามิเตอร์