ฟังก์ชัน (Functions) เป็นส่วนสำคัญในการเขียนโค้ด PHP ที่เป็นระเบียบ นำกลับมาใช้ใหม่ได้ และง่ายต่อการจัดการ
ฟังก์ชันคืออะไร?
ฟังก์ชันคือบล็อกของโค้ดที่ออกแบบมาเพื่อทำงานเฉพาะอย่าง เมื่อคุณต้องการใช้งานโค้ดในบล็อกนั้น คุณสามารถเรียกใช้ฟังก์ชันได้
การสร้างฟังก์ชัน (Defining a Function)
ในการสร้างฟังก์ชันใน PHP คุณต้องทำตามรูปแบบนี้:
<?php
function functionName($parameter1, $parameter2, ...) {
// โค้ดที่จะทำงานเมื่อเรียกใช้ฟังก์ชัน
return $returnValue; // Optional
}
?>
function
: คำหลักที่ใช้ในการประกาศฟังก์ชันfunctionName
: ชื่อของฟังก์ชัน (ควรสื่อถึงการทำงานของฟังก์ชัน)($parameter1, $parameter2, ...)
: พารามิเตอร์ (หรืออาร์กิวเมนต์) คือตัวแปรที่รับค่าจากภายนอกเมื่อมีการเรียกใช้ฟังก์ชัน ฟังก์ชันอาจมีหรือไม่มีพารามิเตอร์ก็ได้{ ... }
: บล็อกของโค้ดที่ประกอบด้วยคำสั่งต่างๆ ที่จะทำงานเมื่อฟังก์ชันถูกเรียกใช้return $returnValue;
(Optional): คำสั่งreturn
ใช้เพื่อส่งค่ากลับไปยังส่วนที่เรียกใช้ฟังก์ชัน ฟังก์ชันอาจมีหรือไม่มีการคืนค่าก็ได้
การเรียกใช้ฟังก์ชัน (Calling a Function)
ในการเรียกใช้ฟังก์ชัน เพียงแค่พิมพ์ชื่อฟังก์ชันตามด้วยวงเล็บ ()
และส่งค่าอาร์กิวเมนต์ (ถ้ามี)
<?php
function greet($name) {
echo "สวัสดี, " . $name . "!";
}
greet("John"); // เรียกใช้ฟังก์ชัน greet โดยส่งค่า "John" เป็นอาร์กิวเมนต์
?>
พารามิเตอร์ของฟังก์ชัน (Function Parameters)
ฟังก์ชันสามารถรับค่าจากภายนอกผ่านทางพารามิเตอร์ คุณสามารถกำหนดชนิดข้อมูลของพารามิเตอร์ได้ (ตั้งแต่ PHP 7)
การกำหนดชนิดข้อมูล (Type Hinting)
<?php
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, 3); // Output: 8
// echo addNumbers(5, "3"); // จะเกิด Fatal Error เนื่องจาก "3" ไม่ใช่ integer
?>
ค่าเริ่มต้นของพารามิเตอร์ (Default Parameter Values)
คุณสามารถกำหนดค่าเริ่มต้นให้กับพารามิเตอร์ได้ หากตอนเรียกใช้ฟังก์ชันไม่ได้ส่งค่าสำหรับพารามิเตอร์นั้น จะใช้ค่าเริ่มต้นแทน
<?php
function setGreeting($greeting = "Hello") {
echo $greeting . ", world!";
}
setGreeting(); // Output: Hello, world!
setGreeting("Hi"); // Output: Hi, world!
?>
การคืนค่าจากฟังก์ชัน (Returning Values)
ฟังก์ชันสามารถส่งค่ากลับไปยังส่วนที่เรียกใช้ได้ โดยใช้คำสั่ง return
คุณยังสามารถกำหนดชนิดข้อมูลของค่าที่ฟังก์ชันจะคืนได้ (ตั้งแต่ PHP 7)
<?php
function multiply(int $x, int $y): int {
return $x * $y;
}
$result = multiply(4, 6);
echo "ผลลัพธ์คือ: " . $result; // Output: ผลลัพธ์คือ: 24
?>
ขอบเขตของตัวแปร (Variable Scope)
ขอบเขตของตัวแปรกำหนดว่าตัวแปรสามารถเข้าถึงได้จากส่วนใดของสคริปต์ PHP
Local Scope
ตัวแปรที่ประกาศภายในฟังก์ชันจะมีขอบเขตเป็น local นั่นหมายความว่าสามารถใช้งานได้เฉพาะภายในฟังก์ชันนั้นเท่านั้น
<?php
function myFunction() {
$localVariable = "ฉันอยู่ในฟังก์ชัน";
echo $localVariable;
}
myFunction(); // Output: ฉันอยู่ในฟังก์ชัน
// echo $localVariable; // จะเกิด Error เนื่องจาก $localVariable ไม่สามารถเข้าถึงได้จากภายนอกฟังก์ชัน
?>
Global Scope
ตัวแปรที่ประกาศภายนอกฟังก์ชันจะมีขอบเขตเป็น global และไม่สามารถเข้าถึงได้โดยตรงภายในฟังก์ชัน หากต้องการเข้าถึงตัวแปร global ภายในฟังก์ชัน คุณต้องใช้คำหลัก global
<?php
$globalVariable = "ฉันอยู่ภายนอกฟังก์ชัน";
function anotherFunction() {
global $globalVariable;
echo $globalVariable;
}
anotherFunction(); // Output: ฉันอยู่ภายนอกฟังก์ชัน
?>
ประโยชน์ของการใช้ฟังก์ชัน
- การนำโค้ดกลับมาใช้ใหม่: คุณสามารถกำหนดบล็อกของโค้ดเป็นฟังก์ชันและเรียกใช้ได้หลายครั้งโดยไม่ต้องเขียนโค้ดซ้ำ
- ความเป็นระเบียบ: ฟังก์ชันช่วยแบ่งโค้ดออกเป็นส่วนๆ ที่มีความหมาย ทำให้โค้ดอ่านง่ายและจัดการได้ง่ายขึ้น
- การบำรุงรักษาที่ง่ายขึ้น: เมื่อคุณต้องการแก้ไขการทำงานบางอย่าง คุณสามารถแก้ไขเฉพาะในฟังก์ชันที่เกี่ยวข้องได้
กิจกรรมใน Module 4
- สร้างฟังก์ชันง่ายๆ ที่ไม่มีพารามิเตอร์และแสดงข้อความบางอย่าง
- สร้างฟังก์ชันที่รับพารามิเตอร์หนึ่งหรือสองตัวและแสดงผลลัพธ์ที่ได้จากการประมวลผล
- เขียนฟังก์ชันที่มีการคืนค่า และเรียกใช้ฟังก์ชันนั้นเพื่อนำค่าที่คืนมาใช้งาน
- ทดลองกำหนดค่าเริ่มต้นให้กับพารามิเตอร์ของฟังก์ชัน
- ศึกษาและทดลองเกี่ยวกับขอบเขตของตัวแปร (local และ global)
ใน Module ถัดไป เราจะมาเรียนรู้เกี่ยวกับ Array ซึ่งเป็นโครงสร้างข้อมูลที่สำคัญในการจัดเก็บและจัดการข้อมูลหลายๆ ค่าในตัวแปรเดียวครับ!