Function PHP
Function ในภาษา PHP มาอยู่ 4 ชนิดคือ
1.ฟังก์ชั่นภายใน (invoking a function)
2.ฟังก์ชั่นที่สร้างขึ้นมาเอง (creating a function)
3.ฟังก์ชั่นซ้อนฟังก์ชั่น (nesting function)
4.ฟังก์ชั่นเรียกตัวเอง (recursive
function)
1. ฟังก์ชั่นภายใน
เป็นฟังก์ชั่นพื้นฐานที่มากับ php มีราวๆ พันกว่าฟังก์ชั่น
ซึ่งจะครอบคลุมการทำงานพื้นฐา่นทั้งหมดของการเขียนโปรแกรม PHP จนบางครั้ง
เราสามารถเขียนโปรแกรมที่ทำงานได้จริงโดยไม่จำเป็นต้องเขียนฟังก์ชั่นเพิ่มเติมเลยแม้แต่ฟังก์ชั่นเดียว
เหมือนที่ผมเคยได้ยินมาว่า
ตัวอย่างฟังก์ชั่นภายใน ผมขอยกตัวอย่างฟังก์ชั่น pow() ถ้าหากเปิดดู
help จะเขียนเป็นลักษณะนี้ number pow ( number $base, number $exp )
number คือ ค่าที่ฟังก์ชั่นนี้ส่งกลับออกมา (return)
ซึ่งเดี๋ยวเราค่อยมาอธิบายกันpow คือ ชื่อฟังก์ชั่น(number $base, number $exp) คือ ค่าที่ต้องส่งให้ฟังก์ชั่นนี้ โดย
number หมายถึงชนิดของค่า (datatype) ที่ต้องส่งไปให้ พราะฉะนั้น
ฟังก์ชั่น pow() เราต้องส่งค่าให้จำนวน 2 ค่า
เมื่อฟังก์ขั่นทำงานเสร็จแล้วจะคืนค่ากลับมาเป็นชนิดตัวเลข
ตัวอย่าง1 <?php
2 echo pow(5,2); // พิมพ์ค่า 5
ยกกำลัง 2 ออกทางหน้าจอเลย3 echo "<br
/>";
4 echo "ผลลัพท์ของ
5 ยกกำลัง 2
คือ " . pow(5,2);
5 ?>
2.ฟังก์ชั่นที่สร้างขึ้นมาเอง
เป็นฟังก์ชั่นที่สร้างขึ้นมาเอง
เพื่อให้ทำงานนอกเหนือจากฟังชั่นที่มีอยู่ใน PHP หรือเราต้องการให้โปรแกรมทำงานตรงกับความต้องการของเรา ตัวอย่าง 1<?php
2
function cmdevhub() {
3 echo "welcome to cmdevhub";
4
}
56 //
เราสามารถเรียกฟังก์ชั่นได้โดยเรียกจากชื่อฟังก์ชั่น78
cmdevhub(); // พิมพ์ welcome to cmdevhub
9
?>
3.ฟังก์ชั่นซ้อนฟังก์ชั้น (Nesting
Function)
ตัวอย่าง
1 <?php
2 function cal_tax
($price, $tax) {
3 function
cal_vat ($total) {
4 return
$total * 0.07;
5 }
6 $price +=
$price * $tax;
7 echo "จำนวนเงินทั้งหมดหลังรวมภาษี
" . $price . " หลังรวมภาษีมูลค่าเพิ่ม " . ($price
+ cal_vat($price));
8 }
9 cal_tax(1500,
0.1); // ผลลัพธ์ 1650 , 1765.5
10 echo "<br
/>";
11 echo
cal_vat(100); // ผลลัพธ์
7
12 ?>
4.ฟังก์ชั่นเรียกตัวเอง (Recursive Function)
ฟังก์ชั่นเรียกตัวเอง ใช้สำหรับทำงานซ้ำๆ
กันโดยที่เราไม่รู้จำนวนรอบในการทำงาน
โดยจะมีจุดสิ้นสุดการทำงานอยู่ในฟังก์ชั่นเองอยู่แล้ว
เพื่อให้ฟังก์ชั่นหยุดการทำงาน การเขียนฟังก์ชั่นแบบเรียกตัวเอง
จะลดระยะเวลาในการเขียนโปรแกรมไปได้อย่างมาก แต่ปัญหาคือการออกแบบและเขียนได้ยากมาก
ทำให้ไม่ค่อยได้เห็นคนเขียนฟังก์ชั่นแบบนี้กันเท่าไหร่
ตัวอย่าง
1<?php
2 function
fibo($num) {
3 if ($num == 1
|| $num == 2) {
4 return 1;
5 }
6 else {
7 return
fibo($num - 1) + fibo($num - 2);
8 }
9 }
10
11 echo fibo(20);
12 ?>
ไม่มีความคิดเห็น:
แสดงความคิดเห็น