วันเสาร์ที่ 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 ?>

    

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

PHP

   PHP 


                 PHP   เป็นภาษาสำหรับใช้ในการเขียนโปรแกรมบนเว็บไซต์ สามารถเขียนได้หลากหลายโปรแกรมเช่นเดียวกับภาษาทั่วไป อาจมีข้อสงสัยว่า ต่างจาก HTML อย่างไร คำตอบคือ HTML นั้นเป็นภาษาที่ใช้ในการจัดรูปแบบของเว็บไซต์ จัดตำแหน่งรูป จัดรูปแบบตัวอักษร หรือใส่สีสันให้กับ เว็บไซต์ของเรา แต่ PHP นั้นเป็นส่วนที่ใช้ในการคำนวน ประมวลผล เก็บค่า และทำตามคำสั่งต่างๆ อย่างเช่น รับค่าจากแบบ form ที่เราทำ รับค่าจากช่องคำตอบของเว็บบอร์ดและเก็บไว้เพื่อนำมาแสดงผลต่อไป แม้แต่กระทั่งใช้ในการเขียน CMS ยอดนิยมเช่น Drupal , Joomla พูดง่ายๆคือเว็บไซต์จะโต้ตอบกับผู้ใช้ได้ ต้องมีภาษา PHP ส่วน HTML หรือ Javascript ใช้เป็นเพียงแค่ตัวควบคุมการแสดงผลเท่านั้น


                  PHP ถูกสร้างขึ้นในปี ค.ศ.1994 โดย Rasmus Lerdorf ต่อมามีผู้ให้ความสนใจเป็นจำนวนมาก จึงได้ออกเป็นแพ็คเกจ "Personal Home Page" ซึ่งเป็นที่มาของ PHP โดยภาษา PHP เป็นแบบ Server Side Script และเป็นOpen Source ที่ผู้ใช้ทั่วไปสามารถดาวน์โหลด Source Code และโปรแกรมไปใช้ฟรี ได้ที่ http://www.php.net
                พอกลางปี ค.ศ.1995 เขาก็ได้พัฒนาตัวแปลภาษา PHP ขึ้นมาใหม่ โดยใช้ชื่อว่า PHP/FI เวอร์ชั่น 2 ซึ่งได้เพิ่มความสามารถในการรับข้อมูลที่ส่งมาจากฟอร์มของ HTML (จึงมีชื่อว่า FI หรือ Form Interpreter) นอกจากนั้นยังเพิ่มความสามารถในการติดต่อกับฐานข้อมูลอีกด้วย จึงทำให้ผู้คนเริ่มหันมาสนใจ PHP กันมากขึ้น

                ในปี 1997 มีผู้ร่วมพัฒนา PHP เพิ่มอีก 2 คน คือ Zeev Suraski และ Andi Gutmans (กลุ่มที่เรียกตัวเองว่าZend ซึ่งย่อมาจาก Zeev และ Andi ) โดยได้แก้ไขข้อบกพร่องต่างๆ และเพิ่มเติมเครื่องมือให้มากขึ้น