เคล็ดลับสำหรับการเขียนโปรแกรม PHP-Closure
Closure เป็น anonymous funciton เพื่อปูพื้นฐานก่อนการนำไปพัฒนาเป็นการเขียนโปรแกรมเชิงฟังก์ชั่น(functional programming) ควบคู่กับการเขียนโปรแกรมเชิงวัตถุ(Object-Oriented Programming) closure
ซึ่งทำให้การเขียนโปรแกรมลดความซับซ้อนลง และยืดหยุ่นขึ้นอย่างมาก เช่น หากมี class สำหรับนับเลขโดยผู้ใช้เป็นผู้กำหนดความกว้างและจุดเริ่มต้นของการนับ ดังตัวอย่าง
แต่หากต้องการนับเฉพาะจำนวนคี่หรือจำนวนคู่เท่านั้น ตามปกติก็จำเป็นจะต้องเพิ่มตัวแปร หรือเขียนเพิ่มเข้าไปใน method ซึ่งก็ทำได้ แต่หากเป็นคลาสที่แต่เดิมทำงานอย่างถูกต้องอยู่แล้วและไม่ต้องการเปลี่ยนการทำงานของฟังก์ชั่นอื่นล่ะ? คำตอบนั้นคือการใช้งานคลาสและฟังก์ชั่นเดิมแต่เพิ่ม closure เข้าไปทำหน้าที่กรองผลลัพธ์แทนโดยทำการเขียนเพิ่มดังนี้
จะเห็นได้ว่าไม่จำเป็นต้องเขียนอะไรเพิ่มในคลาสเลย ก็สามารถแยกเลขคี่ออกมาจากจำนวนทั้งหมดได้ โดยการใช้งาน array_filter แทนการใช้ loop และใช้ $filter เป็นโคลเชอร์ นอกจากนี้ยังทำให้สามารถใช้งานฟังก์ชั่นซ้อนฟังก์ชั่นใน PHP ได้เหมือนกันภาษา Programming อื่นๆ อีกด้วย
สรุป
Closure ถูกนิยามไว้ว่าคือการนำฟังก์ชั่นเข้าไปเป็น parameter ทำให้สอดคล้องกับนิยามการเปลี่ยนแปลงค่าจากภายในฟังก์ชั่นอีกด้วย โดยเราสามารถนำ closure มาใช้เพื่อให้ได้ข้อมูลที่ต้องการจริงๆ ออกมา จากตัวอย่างในบทความเป็นเพียงส่วนหนึ่งของการใช้ประโยชน์จาก closure เท่านั้น จริงๆ แล้วสามารถนำไปใช้ในการเปลี่ยนแปลง/ตรวจสอบค่าของ parameter ก่อนส่งเข้าไปใช้งานฟังก์ชั่นได้เช่นกัน ซึ่งทำให้สามารถเพิ่มความยืดหยุ่นและความปลอดภัยให้กับระบบได้อีกขั้นหนึ่ง
Write a Comment