Advanced PHP Variables and Functions Part 1

มารู้จักการใช้งาน function แบบที่ไม่ธรรมดากันดีไหม
หลายๆคนคงรู้จักใช้งาน function ที่สร้างขึ้นมาใช้เอง
เพราะสะดวก และช่วยให้การพัฒนาเวบไซต์ด้วย php ทำได้ง่ายขึ้น
และเวลาปรับแต่งแก้ไขอะไรก็ง่าย
แต่เคยรู้บ้างไหมว่า php นั้นมีลูกเล่นเกี่ยวกับ function ที่น่าสนใจ
และสามารถช่วยให้เราทำงานได้ง่ายขึ้นกว่าแบบทั่วๆไป…
วันนี้เราจะมาทำความเข้าใจในเรื่องของ function ของ php แบบขึ้นสูงกันครับ
โดยมีหลักการก็คือการทำให้ function ที่เรียกใช้งานนั้น เป็น function ที่ยืดหยุ่น และ dynamic มากขึ้น ซึ่งสามารถนำมาประยุกต์ใช้ในงานพัฒนาเวบแอปพลิเคชั่นได้ดี

Variable-length argument lists
การเรียกใช้งาน function โดยทั่วไปจะมีการส่งค่าไปเวลาเรียกใช้งาน
ซึ่งเราสามารถดึงเอาความสามารถจากการเพิ่มจำนวนของตัวแปรที่ส่งไปด้วย
โดยมีตัวแปร function ที่ควรรู้ดังนี้

func_num_args(), func_get_arg(), and func_get_args()

The func_* function family

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

<?php
function dynamic_args() {
for($i = 0 ; $i < func_num_args(); $i++) {
echo "Argument $i = ".func_get_arg($i)."";
}
}
dynamic_args("a", "b", "c", "d", "e");
?>

จะเห็นว่า โดยปกติที่เราใช้งาน function นั้น
เราจะต้องกำหนดว่า function จะต้องส่งค่าอะไรมาบ้างเพื่อทำการประมวลผล
ซึ่งก็จะกำหนดไว้ตายตัวเลยว่ามีกี่ตัวแปรแต่จากข้างต้น
ในตัว function ที่เราเขียนขึ้นนี้ ไม่ได้กำหนดลิมิตเอาไว้แต่เราสามารถส่งค่าตัวแปรไปให้ function นี้ทำงานได้อย่างไม่มีจำกัดเลยครับ
โดย
func_num_args() จะคืนค่าจำนวนตัวแปรที่ส่งมาทั้งหมดว่ามีเท่าไหร่
func_get_args() จะคืนค่าตัวแปรที่ส่งมา โดยเป็นข้อมูล array จะต้องเรียกใช้โดยกำหนดลำดับที่ของข้อมูลด้วย $i
ทำให้เราประหยัดเวลาอย่างมากเวลาที่ต้องใช้ให้โปรแกรมทำงานซ้ำๆกัน
โดยที่เราเองก็ไม่รู้ว่าต้องซ้ำกันเท่าไหร่โดยผมที่ออกมาจะแสดง อย่างนี้ครับ

Argument 0 = a
Argument 1 = b
Argument 2 = c
Argument 3 = d
Argument 4 = e

นี่เป็นตัวอย่างง่ายๆครับในการใช้งาน function แบบที่ไม่ธรรมดา
ซึ่งอาจนำไปดัดแปลงใช้ในกรณีที่ต้องประมวลผลข้อมูลหลายชุด
โดยใช้คำสั่งเดียว ก็ใช้แบบนี้นับว่าสะดวกทีเดียวครับ
ยังมีการใช้งานขึ้นสูงอีกหลายแบบ ไว้คราวหน้ามาว่ากันใหม่ครับ…

Related Posts