วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2557

ฟังก์ชันใน PHP

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 ?>

    

ไม่มีความคิดเห็น:

แสดงความคิดเห็น