0Pricing
PHP Academy · บทเรียน

การกำหนดและเรียกใช้ฟังก์ชัน

สร้างฟังก์ชันของคุณเองด้วยพารามิเตอร์และค่าที่ส่งกลับ

การกำหนดและเรียกใช้ฟังก์ชัน เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องใช้ฟังก์ชัน

ฟังก์ชันช่วยรวมตรรกะที่นำกลับมาใช้ใหม่ได้และตั้งชื่อให้ตรรกะนั้น เพื่อให้เรียกใช้ได้หลายครั้งโดยไม่ต้องเขียนโค้ดซ้ำ ประโยชน์ ได้แก่:

  • หลีกเลี่ยงการทำซ้ำ (หลักการ DRY)
  • ทดสอบและแก้จุดบกพร่องได้ง่ายขึ้น
  • โค้ดที่อธิบายตัวเองได้

การกำหนดฟังก์ชัน

ใช้คำสำคัญ function ตามด้วยชื่อ พารามิเตอร์ที่ไม่บังคับ และส่วนตัวฟังก์ชัน:

<?php
function greet(string $name): string {
    return 'Hello, ' . $name . '!';
}

echo greet('Alice'); // Hello, Alice!

พารามิเตอร์และอาร์กิวเมนต์

พารามิเตอร์คือชื่อตัวแปรในการนิยามฟังก์ชัน ส่วนอาร์กิวเมนต์คือค่าจริงที่ส่งเข้าไปเมื่อเรียกใช้:

<?php
function add(int $a, int $b): int {
    return $a + $b;  // $a and $b are parameters
}

$sum = add(3, 4);  // 3 and 4 are arguments
echo $sum;  // 7

ค่าที่ส่งคืน

ใช้ return เพื่อส่งค่ากลับไปยังผู้เรียก ฟังก์ชันที่ไม่มี return จะคืนค่า NULL:

<?php
function square(float $n): float {
    return $n * $n;
}

function logMessage(string $msg): void {
    echo '[LOG] ' . $msg . PHP_EOL;
    // void functions must not return a value
}

echo square(4);        // 16
logMessage('started'); // [LOG] started

การส่งผ่านแบบค่าเทียบกับการอ้างอิง

โดยค่าเริ่มต้น PHP จะส่งอาร์กิวเมนต์ตามค่า (สำเนา) เติม & ไว้ข้างหน้าเพื่อส่งผ่านโดยการอ้างอิง:

<?php
function doubleByValue(int $n): void {
    $n *= 2;  // changes only the local copy
}

function doubleByRef(int &$n): void {
    $n *= 2;  // changes the original
}

$x = 5;
doubleByValue($x);
echo $x; // 5 — unchanged

doubleByRef($x);
echo $x; // 10 — changed

จุดคืนค่าหลายจุด

ฟังก์ชันสามารถมีคำสั่ง return หลายคำสั่งเพื่อออกจากการทำงานก่อนเวลาได้:

<?php
function divide(float $a, float $b): ?float {
    if ($b === 0.0) {
        return null;  // early return on error
    }
    return $a / $b;
}

var_dump(divide(10, 0));   // NULL
echo divide(10, 2);         // 5

การยกประกาศฟังก์ชัน

ฟังก์ชัน PHP ใช้งานได้ตลอดทั้งไฟล์ ไม่ว่าจะนิยามไว้ที่ใดก็ตาม ต่างจาก JavaScript ฟังก์ชัน PHP ส่วนใหญ่ไม่จำเป็นต้องประกาศก่อนใช้งาน:

<?php
echo double(5);  // 10 — works even though double is defined below

function double(int $n): int {
    return $n * 2;
}

// Exception: functions inside conditionals ARE position-sensitive

ฟังก์ชันเรียกตัวเอง

ฟังก์ชันที่เรียกตัวเองเรียกว่าฟังก์ชันเวียนเกิด ควรกำหนดกรณีฐานเสมอเพื่อหลีกเลี่ยงการเรียกตัวเองแบบไม่สิ้นสุด:

<?php
function factorial(int $n): int {
    if ($n <= 1) return 1;  // base case
    return $n * factorial($n - 1);  // recursive call
}

echo factorial(5);  // 120

การประกาศชนิดข้อมูล

PHP 7 ขึ้นไปรองรับคำแนะนำชนิดข้อมูลของพารามิเตอร์และค่าที่ส่งคืน PHP 8 เพิ่ม mixed, never และชนิดข้อมูลแบบอินเตอร์เซกชัน:

<?php
declare(strict_types=1);

function clamp(int $value, int $min, int $max): int {
    return max($min, min($max, $value));
}

echo clamp(150, 0, 100);  // 100
echo clamp(-5,  0, 100);  // 0
echo clamp(42,  0, 100);  // 42

ฟังก์ชันที่ตั้งชื่อเองเทียบกับฟังก์ชันที่มีมาให้

PHP มาพร้อมฟังก์ชันที่มีมาให้หลายพันฟังก์ชัน คุณสามารถตรวจสอบได้เสมอว่าฟังก์ชันมีอยู่ขณะทำงานหรือไม่:

<?php
if (function_exists('mb_strlen')) {
    echo mb_strlen('こんにちは');  // 5 — correct multi-byte length
} else {
    echo strlen('こんにちは');      // 15 — byte count, wrong for UTF-8
}

การส่งคืนหลายค่า

ส่งคืนหลายค่าโดยส่งคืนอาร์เรย์ แล้วแยกโครงสร้างที่จุดเรียกใช้:

<?php
function minMax(array $arr): array {
    return [min($arr), max($arr)];
}

[$min, $max] = minMax([3, 1, 7, 2, 9]);
echo "Min: $min, Max: $max";  // Min: 1, Max: 9

ตรวจสอบความเข้าใจ

ฟังก์ชัน PHP ที่ไม่มีคำสั่ง return อย่างชัดเจนจะคืนค่าอะไร

สรุป: ฟังก์ชัน

พื้นฐานสำคัญของฟังก์ชัน PHP:

  • กำหนดด้วย function name(params): returnType
  • ส่งผ่านตามค่า (ค่าเริ่มต้น) หรือส่งผ่านโดยการอ้างอิงด้วย &
  • ฟังก์ชันที่ไม่มี return จะคืนค่า NULL
  • การเรียกตัวเองต้องมีกรณีฐาน
  • ฟังก์ชันใช้งานได้ตลอดทั้งไฟล์ (การยกประกาศ)

ถัดไป: พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์แบบแปรผัน

คำถามที่พบบ่อย

บทเรียน “การกำหนดและเรียกใช้ฟังก์ชัน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การกำหนดและเรียกใช้ฟังก์ชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดและเรียกใช้ฟังก์ชัน”

สร้างฟังก์ชันของคุณเองด้วยพารามิเตอร์และค่าที่ส่งกลับ คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การกำหนดและเรียกใช้ฟังก์ชัน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การกำหนดและเรียกใช้ฟังก์ชัน
  2. พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์จำนวนไม่แน่นอน
  3. ขอบเขตตัวแปร: ภายในและส่วนกลาง
  4. ฟังก์ชันไม่ระบุชื่อและโคลสเชอร์
← กลับไปที่ PHP Academy