การเขียนโปรแกรมกับการสร้างฟังก์ชั่น เป็นอะไรที่แยกกันไม่ออกทีเดียว เมื่อท่านเรียนรู้การเขียนโปรแกรม เขาก็จะสอนให้ท่านรู้จักวิธีสร้างฟังก์ชั่นด้วย
ฟังก์ชั่นนั้นจะมีอยู่ 2 แบบ คือ
1.built in function คือ ฟังก์ชั่นที่มีมาอยู่แล้วในภาษานั้นๆ เช่นถ้า php ก็ explode(),implode(), ฯลฯ
2.user define function คือฟังก์ชั่นที่โปรแกรมเมอร์เขียนขึ้นมาเองภายหลัง
เป้าหมายหลักของฟังก์ชั่นก็คือ เพื่อช่วยให้เราไม่ต้องเขียนโค้ดที่จะ้ต้องใช้ซ้ำๆ ใหม่ทุกครั้งเมื่อจะใช้งาน และเพื่อการ reuse โค้ด
ทีนี้โดยปกติแล้ว เรามักจะสร้างฟังก์ชั่น ที่มีพารามิเตอร์แบบคงตัว เช่น
function subtract( $x = 0 , $y = 0 ){ return $x - $y; } |
ฟังก์ชั่นนี้จะทำการ เอา x ตั้งแล้วลบด้วย y ตอนที่เรียกใช้ฟังก์ชั่นท่านจะต้องส่งพารามิเตอร์มาให้ถูกตำแหน่ง ไม่งั้นการลบก็จะออกมาผิด
ผมมีข้อเสนอให้เป็นทางเลือกในการสร้างฟังก์ชั่นอีกทางเลือกหนึ่งคือ ส่งพารามิเตอร์ไปเป็นอะเรย์
function subtract( $number = array() ){ return $number['x'] - $number['y'] ; } |
เวลาท่านเรียกใช้งานฟังก์ชั่นนี้ ถึงท่านจะส่งพารามิเตอร์ไปสลับกันก็ไม่มีปัญหา ผลที่ได้จะเหมือนเดิม
function subtract( $number = array() ){ return $number['x'] - $number['y'] ; } echo subtract( array( 'x'=> 10 ,'y'=>5 ) ); echo subtract( array( 'y'=> 5 ,'x'=> 10 ) ); |
ข้อดีอีกอย่างของการใช้พารามิเตอร์แบบ array ก็คือ ท่านสามารถเพิ่มพารามิเตอร์เข้าไปในอนาคต ได้โดยไม่ต้องไปนั่งไล่แก้โค้ดเก่าที่ท่านเคยเรียกใช้ฟังก์ชั่นตัวนี้ไปแล้ว
function subtract( $number = array() ){ if( !isset( $number['z'] ) ) { $number['z'] = 0; } return $number['x'] - $number['y'] - $number['z'] ; } echo subtract( array( 'x'=> 10 ,'y'=>5 ) ); echo subtract( array( 'x'=> 10 ,'y'=>5 , 'z'=> 2 ) ); |
เห็นมั้ยว่ามันแจ่มแค่ไหน
benziepee says:
15/06/2553 at 15/06/2553
แจ่มเลย ขอบคุณครับ ^^