Advanced PHP Variables and Functions(ภาค3)

ครั้งนี้มาดูการเรียกใช้ function ตามค่าตัวแปรกันครับ
เรียกมันว่า “Variable functions”
หรือผมขอเรียกมันว่า “Function จากตัวแปร”
Variable functions

อันนี้คงจะเข้าใจกันง่ายๆครับ
นั่นคือ การเรียกใช้ function ตัวหนึ่งขึ้นมา โดยที่ชื่อของ function นั่นเราสามารถเปลี่ยนแปลงได้ตามค่าของตัวแปรครับ
ลองดูตัวอย่างจากข้างล่างเลยครับ จะเข้าใจง่ายกว่า

<?php
function myfunc($msg) {
echo $msg;
}

$func_name = "myfunc";
$func_name("Hello, this is a test");
?>

เริ่มจากเราสร้าง function ชื่อ myfunc ขึ้นมา เพื่อแสดงค่า $msg ที่ส่งไป
จากนั้น เราไม่ต้องการเรียกใช้งาน myfunc() นี้โดยตรง
แต่เราจะเรียกโดยกำหนดตัวแปรลงไป $func_name เป็นชื่อของ function ครับ
เวลาเราต้องการใช้งานก็ตามรูปแบบด้านบนเลยครับ ก็จะเป็นการเรียกใช้งาน myfunc() นั่นเองครับ

การประยุกต์ใช้งาน
เช่น
เวลาที่เรากำหนดการทำงานบางอย่าง เปลี่ยนแปลงไปตามค่านั้นๆ
แทนที่เราจะใช้ if(), switch()
เราก็ใช้ชื่อค่าตัวแปรนั้นได้เลย ช่วยให้ประหยัด code ไปได้เยอะครับ

สมมติ
วันนี้วันอะไร คำตอบคือ “Monday”
เราก็ให้มันทำงานของ function Monday()
ซึ่งวันอื่นๆ เราก็อาจจะทำงานรูปแบบต่างกัน
ซึ่งตรงนี้จะกำหนดชื่อ function ตามชื่อตัวแปรเท่านั้น

ถ้าเป็นรูปแบบเดิมอาจจะถูกเขียนแบบนี้

<?php
if($date=="Monday"){
Monday();
}elseif($date=="Sunday"){
Sunday();
}elseif(..............){
..............
}

?>

หรือรูปแบบที่สอง

<?php
switch($date){
case Monday:
Monday();
case Sunday:
Sunday();
}
..............
?>

จะเห็นว่ารูปแบบเดิมๆที่เคยใช้กันทำให้ code มีความยาวกว่ามาก
ซึ่งหากใช้แบบนี้แล้วจะช่วยลดให้โปรแกรมเล็กลงด้วยครับ

Related Posts