• ติดตามบน
การใช้งาน Function ในภาษา PHP

การใช้งาน Function ในภาษา PHP

Chalothorn Kosakul 27 พฤษภาคม 2569 26 ครั้ง

การใช้งาน Function (ฟังก์ชัน) ใน PHP

Function (ฟังก์ชัน) คือ ชุดคำสั่งที่ถูกสร้างขึ้นเพื่อทำงานเฉพาะอย่าง ช่วยลดการเขียนโค้ดซ้ำ ทำให้โครงสร้างโปรแกรมสะอาด อ่านง่าย ไล่โค้ดได้สะดวก และสามารถเรียกใช้งานซ้ำ ๆ ได้ทุกที่ตามต้องการ


1. รูปแบบพื้นฐานการสร้าง Function

การประกาศฟังก์ชันจะขึ้นต้นด้วยคีย์เวิร์ด function ตามด้วยชื่อฟังก์ชันและเครื่องหมายวงเล็บ

โครงสร้างคำสั่ง:

function function_name() {
    // ชุดคำสั่งที่ต้องการให้ทำงาน
}

ตัวอย่างการใช้งาน:

<?php
function hello() {
    echo "Hello World";
}

hello(); // เรียกใช้งานฟังก์ชัน
?>
ผลลัพธ์: Hello World

2. การส่งค่าเข้าไปใน Function (Parameter)

เราสามารถส่งข้อมูลหรือตัวแปรจากภายนอกเข้าไปเพื่อให้ฟังก์ชันนำไปประมวลผลต่อได้ เรียกว่าการส่งค่าผ่าน Parameter

• ฟังก์ชันแบบมี 1 Parameter

<?php
function showName($name) {
    echo "ชื่อ : " . $name;
}

showName("Somchai");
?>
ผลลัพธ์: ชื่อ : Somchai

• ฟังก์ชันแบบมีหลาย Parameter

หากมีพารามิเตอร์มากกว่า 1 ตัว ให้ใช้เครื่องหมายจุลภาค (,) คั่นระหว่างตัวแปร

<?php
function add($a, $b) {
    $sum = $a + $b;
    echo "ผลรวม = " . $sum;
}

add(10, 20);
?>
ผลลัพธ์: ผลรวม = 30

3. การคืนค่าด้วย return

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

<?php
function square($num) {
    return $num * $num;
}

$result = square(5); // ค่า 25 จะถูกส่งกลับมาเก็บที่ตัวแปร $result
echo $result;
?>
ผลลัพธ์: 25

4. Function แบบกำหนดค่าเริ่มต้น (Default Value)

เราสามารถกำหนดค่ามาตรฐานเผื่อไว้ได้ ในกรณีที่ผู้เรียกใช้งานไม่ได้ส่งค่า Parameter เข้ามา ฟังก์ชันจะดึงค่าเริ่มต้นนี้ไปใช้ทันที

<?php
function welcome($name = "Guest") {
    echo "Welcome " . $name;
}

welcome(); // ไม่ได้ส่งค่าเข้าไป ฟังก์ชันจะใช้คำว่า "Guest" 
?>
ผลลัพธ์: Welcome Guest

🌟 ประโยชน์ของการใช้งาน Function

  • ลดความซ้ำซ้อน: ไม่ต้องเขียนชุดคำสั่งเดิม ๆ ซ้ำกันหลายบรรทัด
  • อ่านง่ายและสะอาด: จัดกลุ่มโค้ดให้เป็นระบบ ทำให้แก้ไขและไล่บั๊กได้ง่าย
  • บำรุงรักษาสะดวก: หากโค้ดทำงานผิดพลาด แก้ไขจุดเดียวในฟังก์ชัน ก็จะมีผลอัปเดตทุกที่
  • Reusability: สามารถย้ายฟังก์ชันไปเรียกใช้ซ้ำในโปรเจกต์หรือไฟล์อื่น ๆ ได้ทันที
  • Modular Design: แบ่งแยกหน้าที่การทำงานของโปรแกรมออกเป็นส่วนย่อย ๆ อย่างชัดเจน

🛠️ ตัวอย่างการประยุกต์ใช้งานจริง

ตัวอย่างการสร้างฟังก์ชันคำนวณและตัดเกรดจากคะแนนสะสมที่ส่งเข้ามา:

<?php
function calculateGrade($score) {
    if ($score >= 80) {
        return "A";
    } elseif ($score >= 70) {
        return "B";
    } elseif ($score >= 60) {
        return "C";
    } elseif ($score >= 50) {
        return "D";
    } else {
        return "F";
    }
}

// เรียกใช้งานพร้อมส่งคะแนน 75 เข้าไป
echo "เกรดของคุณคือ: " . calculateGrade(75); 
?>
ผลลัพธ์ระบบ: เกรดของคุณคือ: B

7. การระบุชนิดข้อมูลใน Function (Type Declaration)

ใน PHP ยุคใหม่ (PHP 7 เป็นต้นไป) เราสามารถระบุชนิดข้อมูล (Data Type) ให้กับ Parameter และค่าที่ส่งกลับ (Return) ได้ เพื่อช่วยป้องกันไม่ให้โปรแกรมทำงานผิดพลาดหากมีการส่งข้อมูลผิดประเภทเข้ามา

<?php
// กำหนดให้ $price ต้องเป็น float (ทศนิยม) และ $tax ต้องเป็น int (จำนวนเต็ม)
// และบังคับให้ฟังก์ชันนี้ต้อง return ค่ากลับออกไปเป็น float เท่านั้น (: float)
function calculateTotal(float $price, int $tax): float {
    return $price + ($price * ($tax / 100));
}

echo "ราคารวม: " . calculateTotal(100.50, 7); 
?>
ผลลัพธ์: ราคารวม: 107.535

8. ขอบเขตของตัวแปร (Variable Scope)

ตัวแปรที่ถูกสร้างขึ้นภายในฟังก์ชันจะเรียกว่า Local Variable ซึ่งจะใช้งานได้เฉพาะภายในฟังก์ชันนั้น ๆ เท่านั้น ไม่สามารถเรียกใช้จากภายนอกได้ และในทางกลับกัน ฟังก์ชันก็ไม่สามารถดึงตัวแปรข้างนอก (Global Variable) มาใช้ตรง ๆ ได้เช่นกัน

⚠️ สิ่งที่มือใหม่มักพลาด (โค้ดที่เกิด Error):

<?php
$company = "My App"; // Global Variable

function showMessage() {
    // โค้ดนี้จะเกิด Error: Undefined variable $company
    echo "Welcome to " . $company; 
}

showMessage();
?>

✅ วิธีแก้ไขที่ถูกต้อง (การใช้คีย์เวิร์ด global):

<?php
$company = "My App"; 

function showMessage() {
    global $company; // ประกาศขอใช้ตัวแปรจากข้างนอก
    echo "Welcome to " . $company; 
}

showMessage();
?>
ผลลัพธ์: Welcome to My App

9. ฟังก์ชันไม่มีชื่อ และ Arrow Function (ฟีเจอร์ขั้นสูง)

ในบางครั้งเราต้องการสร้างฟังก์ชันสั้น ๆ เพื่อใช้งานเพียงครั้งเดียว (เช่น ใช้ร่วมกับฟังก์ชันจัดการอาร์เรย์อย่าง array_map) เราสามารถสร้างฟังก์ชันไม่มีชื่อได้

• Anonymous Function (ฟังก์ชันนิรนาม)

<?php
// สร้างฟังก์ชันเก็บไว้ในตัวแปร $sayHi
$sayHi = function($word) {
    return "Say: " . $word;
}; // *** ต้องปิดท้ายด้วยเซมิโคลอน (;)

echo $sayHi("Hello");
?>

• Arrow Function (เขียนให้สั้นลงใน PHP 7.4+)

ช่วยลดรูปฟังก์ชันไม่มีชื่อให้สั้นกระชับ โดยใช้คีย์เวิร์ด fn() และส่งค่ากลับได้ทันทีโดยไม่ต้องเขียนคำว่า return

<?php
// ฟังก์ชันคูณสองแบบสั้น
$multiply = fn($num) => $num * 2;

echo $multiply(10); // ส่ง 10 ไปคูณ 2
?>
ผลลัพธ์: 20

แชร์บทความนี้