การเขียน function ใน แบบ PHP

ภาษา PHP มีการเขียนฟังก์ชั่นได้หลากหลายมาก และช่วยแยกการทำงานออกมาเป็นส่วนๆให้ทำงานได้ง่ายขึ้นรวดเร็ว และได้ผลลัพธ์ที่ถูกต้องตามต้องการ โดยการส่งค่าต่างๆเข้าไปในฟังก์ชั่นนั้นเรียกว่า พารามิเตอร์ (Parameter) จะมีกี่ตัวก็ได้ ในภาษา PHP นี้หากใช้ฟังก์ชั่นที่เป็นของ PHP เองจะเรียกว่า Predefined Functions และเราสามารถนำเอามาใช้งานได้ทันที

แต่หากเป็นฟังก์ชั่นพิเศษที่เราสร้างขึ้นมาเองจะเรียกว่า User Defined Function แต่ไม่ว่าจะเป็นฟังก์ชั่นแบบใดก็ตาม ล้วนแล้วแต่มีความสำคัญต่อการเขียนโปรแกรมของเราทั้งหมดทั้งสิ้น โดยเฉพาะ User Defined Function หากบางครั้งเรามีเรียกการใช้งานแบบเดิมซ้ำๆการทำฟังก์ชั่นแบบนี้ไว้จะช่วยให้เราประหยัดเวลาไม่ต้องเขียนโค้ดใหม่ทุกครั้ง และทำให้การทำงาน การประมวลผล การเรียกใช้งานรวดเร็วมากขึ้นด้วย

ลักษณะการเขียน ฟังก์ชั่น เป็นดังนี้ 

<?php  function ชื่อฟังก์ชั่น($parameter){ คำสั่ง } ?>

เรียกว่าการทำงานของ function ชื่อฟังก์ชั่น($parameter) จะอยู่ใน { ถึง } นั่นเอง โดยตัวฟังก์ชั่นนั้นนจะมี return หรือไม่มีก็ได้ หรือจะไม่มี Parameter ก็ได้เช่นกัน

ยกตัวอย่างเช่น หากเราเรียกใช้คำสั่งว่า

if ($x <= 0) { // ถ้าค่าตัวแปร x น้อยกว่าหรือเท่ากับ 0 ให้….

show_error(“กรุณาใส่ค่าที่มากกว่า 0″);   // เป็นการเรียกใช้ function ชื่อ show_error()

}

นี่คือการเรียกใช้ฟังก์ชั่น แต่ว่าเรายังไม่ได้กำหนดค่าให้ฟังก์ชั่น เรามากำหนดให้กันก่อนดีกว่า ดังนี้

function show_error($msg) {

echo “<font color=red>”. $msg . “</font>;

}

ผลลัพธ์ที่ได้คือหลังจาก ด้านบนที่ถ้าค่าตัวแปรน้อยกว่าหรือเท่ากับ 0 แล้ว มันจะเรียกใช้ function show_error() ซึ่งฟังก์ชั่นตัวนี้บอกไว้ว่า ให้ แสดงผล ตัวหนังสือสีแดง โดยแสดงข้อความเท่ากับตัวแปร $msg ซึ่ง ตัวแปร $msg ได้แสดงออกมาแล้วตอนเรียกใช้เงื่อนไขนั่นคือ $msg = กรุณาใส่ค่าที่มากกว่า 0 นั่นเอง

การคืนค่าฟังก์ชั่น ใช้คำสั่ง return ได้ด้วย เนื่องจากหน้าที่ฟังก์ชั่นใช้ในการประมวลผล ซึ่งเมื่อประมวลผลเสร็จแล้วนั้น ได้ผลลัพธ์ออกมาเรามักจะต้องนำไปใช้ต่อ ซึ่งก็คือควรส่งค่าที่ได้กลับไปยังส่วนนั้นๆที่เรียกใช้ฟังก์ชั่นนี้ ฉะนั้น วิธีการส่งค่ากลับไปที่ได้ผลดีที่สุดคือคำสั่ง return นั่นเอง

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