การกำหนดและเรียกใช้ฟังก์ชัน
สร้างฟังก์ชันของคุณเองด้วยพารามิเตอร์และค่าที่ส่งกลับ
การกำหนดและเรียกใช้ฟังก์ชัน เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนดและเรียกใช้ฟังก์ชัน
- พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์จำนวนไม่แน่นอน
- ขอบเขตตัวแปร: ภายในและส่วนกลาง
- ฟังก์ชันไม่ระบุชื่อและโคลสเชอร์