• ติดตามบน
โครงสร้างควบคุมในภาษา PHP (Control Structures)

โครงสร้างควบคุมในภาษา PHP (Control Structures)

Chalothorn Kosakul 22 พฤษภาคม 2569 268 ครั้ง

โครงสร้างควบคุมในภาษา PHP (Control Structures)

การพัฒนาโปรแกรมด้วยภาษา PHP จำเป็นต้องอาศัย “โครงสร้างควบคุม” (Control Structures) เพื่อกำหนดลำดับการทำงานของโปรแกรม ไม่ว่าจะเป็นการตัดสินใจตามเงื่อนไข หรือการทำงานซ้ำตามจำนวนรอบที่กำหนด โครงสร้างเหล่านี้ช่วยให้โปรแกรมสามารถทำงานได้อย่างยืดหยุ่น มีประสิทธิภาพ และตอบสนองต่อสถานการณ์ต่าง ๆ ได้อย่างเหมาะสม

เนื้อหาในบทนี้ประกอบด้วย:

  • โครงสร้างเงื่อนไข (if, else, switch)
  • โครงสร้างวนซ้ำ (for, while, do-while)
  • การวนซ้ำอาร์เรย์ด้วย foreach

1. โครงสร้างเงื่อนไขในภาษา PHP

โครงสร้างเงื่อนไข (Conditional Structure) ใช้สำหรับตรวจสอบสถานะหรือเงื่อนไขที่กำหนด และสั่งให้โปรแกรมทำงานแตกต่างกันตามผลลัพธ์ของเงื่อนไขนั้นๆ

1.1 คำสั่ง if

คำสั่ง if ใช้ตรวจสอบว่าเงื่อนไขเป็นจริงหรือไม่ หากเงื่อนไขเป็นจริง โปรแกรมจะทำงานภายในบล็อกคำสั่งทันที

รูปแบบคำสั่ง:

if (เงื่อนไข) {
    // คำสั่งเมื่อเงื่อนไขเป็นจริง
}

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

<?php
$score = 85;

if ($score >= 80) {
    echo "คุณได้เกรด A";
}
?>

1.2 คำสั่ง if-else

ใช้เมื่อมี 2 เส้นทางหรือ 2 กรณีในการตัดสินใจ หากเงื่อนไขในช่อง if ไม่เป็นจริง (เป็นเท็จ) โปรแกรมจะข้ามมาทำงานในบล็อกของ else แทน

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

<?php
$age = 15;

if ($age >= 18) {
    echo "คุณสามารถเข้าร่วมกิจกรรมได้";
} else {
    echo "คุณยังไม่สามารถเข้าร่วมกิจกรรมได้";
}
?>

1.3 คำสั่ง if-elseif-else

ใช้สำหรับตรวจสอบกรณีที่มีหลากหลายเงื่อนไขให้เลือก โดยโปรแกรมจะไล่เช็คทีละเงื่อนไขและเลือกทำงานในบล็อกแรกที่ผลการตรวจสอบเป็นจริงเท่านั้น

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

<?php
$score = 65;

if ($score >= 80) {
    echo "เกรด A";
} elseif ($score >= 70) {
    echo "เกรด B";
} elseif ($score >= 60) {
    echo "เกรด C";
} else {
    echo "เกรด F";
}
?>

💡 แบบฝึกหัดทดลองทำเพิ่มเติม:

กรณีที่ 1: ตรวจสอบเลขคู่หรือเลขคี่

<?php
$number = 7;
if ($number % 2 == 0) {
    echo "even number";
} else {
    echo "odd number";
}
?>

กรณีที่ 2: ตรวจสอบจำนวนบวก ลบ หรือศูนย์ (Nested Conditions)

<?php
$number = -5;

if ($number > 0) {
    if ($number % 2 == 0) {
        echo "positive even number";
    } else {
        echo "positive odd number";
    }
} elseif ($number < 0) {
    if ($number % 2 == 0) {
        echo "negative even number";
    } else {
        echo "negative odd number";
    }
} else {
    echo "The number is zero";
}
?>

1.4 คำสั่ง switch

คำสั่ง switch ใช้ตรวจสอบค่าของตัวแปรที่มีการระบุค่าแน่นอนไว้หลายกรณี และเลือกทำงานตามบล็อกคำสั่งที่ตรงกับค่านั้น ๆ

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

<?php
$day = "Wednesday";

switch ($day) {
    case "Monday":
        echo "วันนี้เป็นวันจันทร์";
        break;
    case "Tuesday":
        echo "วันนี้เป็นวันอังคาร";
        break;
    case "Wednesday":
        echo "วันนี้เป็นวันพุธ";
        break;
    default:
        echo "วันนี้ไม่ตรงกับวันที่ระบุ";
        break;
}
?>

เปรียบเทียบความแตกต่างระหว่าง if-else และ switch

โครงสร้างแบบ if-elseโครงสร้างแบบ switch
เหมาะกับเงื่อนไขที่ซับซ้อน หรือมีช่วงข้อมูลเป็นวงกว้างเหมาะกับตัวแปรที่มีค่าคงที่ชัดเจนในหลาย ๆ กรณี
ใช้ตัวดำเนินการเปรียบเทียบตรรกะได้หลากหลาย (>, <, &&, ||)ทำความเข้าใจได้ง่ายกว่าเมื่อต้องการสร้างโครงสร้างเคสเยอะ ๆ
มีความยืดหยุ่นในการเขียนระบบสูงมากทำให้โค้ดเป็นระเบียบกระชับและไม่ซ้อนกันจนลายตา

2. โครงสร้างวนซ้ำในภาษา PHP (Loops)

โครงสร้างวนซ้ำใช้สำหรับทำคำสั่งงานเดิม ๆ ซ้ำกันไปเรื่อย ๆ ตามค่าที่กำหนด ช่วยลดบรรทัดความซ้ำซ้อนของชุดคำสั่งให้เหลือเพียงไม่กี่บรรทัด

2.1 คำสั่ง for

เหมาะอย่างยิ่งสำหรับกรณีที่เรา "ทราบจำนวนรอบที่แน่นอนอยู่แล้ว" ก่อนเริ่มรันโปรแกรม

<?php
for ($i = 1; $i <= 5; $i++) {
    echo "รอบที่ $i<br>";
}
?>

2.2 คำสั่ง while

ใช้ในกรณีที่ "จำนวนรอบไม่แน่นอน" แต่มีเงื่อนไขปลายทางเป็นตัวควบคุมลูป หากเงื่อนไขยังเป็นจริง ลูปก็จะทำงานต่อไปเรื่อย ๆ

<?php
$i = 1;
while ($i <= 5) {
    echo "รอบที่ $i<br>";
    $i++;
}
?>

2.3 คำสั่ง do-while

มีลักษณะคล้ายคำสั่ง while แต่มีจุดต่างสำคัญคือ ลูปนี้จะสั่งงานก่อนอย่างน้อย 1 ครั้ง เสมอ แล้วจึงค่อยไปตรวจสอบเงื่อนไขในตอนท้าย

<?php
$i = 1;
do {
    echo "รอบที่ $i<br>";
    $i++;
} while ($i <= 5);
?>

สรุปเปรียบเทียบการใช้งานโครงสร้างลูปทั้ง 3 รูปแบบ

คำสั่งลูปความเหมาะสมต่อรูปแบบการนำไปใช้
forใช้เมื่อรู้จำนวนรอบในการรันคำสั่งซ้ำอย่างแน่นอนชัดเจน
whileใช้เมื่อไม่รู้รอบที่ชัดเจน แต่อิงตามความจริงของเงื่อนไขเป็นหลัก
do-whileใช้ในกรณีที่จำเป็นต้องมีการทำงานชุดแรกก่อนตรวจสอบความถูกต้อง (รันอย่างน้อยหนึ่งครั้งแน่ๆ)

3. การใช้ foreach กับอาร์เรย์ (Array Loop)

คำสั่ง foreach เป็นโครงสร้างที่ออกแบบมาสำหรับใช้วนซ้ำเพื่อดึงข้อมูลใน อาร์เรย์ (Array) ออกมาแสดงโดยเฉพาะ ช่วยตัดปัญหาเรื่องการกำหนดตัวชี้และทำให้เขียนโค้ดได้สั้นลง

ตัวอย่าง 1: การดึงค่า (Value) จากอาร์เรย์ทั่วไป

<?php
$fruits = ["แอปเปิล", "กล้วย", "ส้ม"];

foreach ($fruits as $fruit) {
    echo "ผลไม้: $fruit<br>";
}
?>

ตัวอย่าง 2: การดึงทั้งคีย์ (Key) และค่า (Value) มาจากอาร์เรย์แบบจับคู่

<?php
$person = [
    "ชื่อ" => "สมชาย",
    "อายุ" => 30,
    "อาชีพ" => "โปรแกรมเมอร์"
];

foreach ($person as $key => $value) {
    echo "$key: $value<br>";
}
?>

ตัวอย่าง 3: การรัน foreach ซ้อนลูปกับอาร์เรย์หลายมิติ (Multi-dimensional Array)

<?php
$students = [
    ["ชื่อ" => "สมชาย", "เกรด" => "A"],
    ["ชื่อ" => "สมหญิง", "เกรด" => "B"]
];

foreach ($students as $student) {
    foreach ($student as $key => $value) {
        echo "$key: $value ";
    }
    echo "<br>";
}
?>

📝 แบบฝึกหัดท้ายบทเพื่อทบทวนความรู้

  1. ข้อที่ 1: โปรแกรมตัดเกรด — จงเขียนโปรแกรมรับคะแนนเพื่อแสดงผลเกรด A, B, C, D และ F โดยใช้เงื่อนไข if-elseif-else
  2. ข้อที่ 2: สูตรคูณแม่ 7 — จงเขียนชุดลูปสั่งแสดงผลสูตรคูณแม่ 7 ตั้งแต่ 7x1 ไปจนถึง 7x12 โดยประยุกต์ใช้คำสั่ง for loop
  3. ข้อที่ 3: หาผลรวมเลขคู่ 1 ถึง 50 — สร้างโปรแกรมบวกสะสมค่าเฉพาะตัวเลขที่เป็นเลขคู่ในช่วงตั้งแต่เลข 1 ถึง 50
  4. ข้อที่ 4: สร้างเมนูแบบไดนามิก — ท้าทายด้วยการนำอาร์เรย์รายชื่อเมนูอาหารมาประยุกต์สร้างเป็นลิสต์เมนูผ่านการใช้ foreach

สรุป

โครงสร้างควบคุมในภาษา PHP ถือเป็นกระดูกชิ้นสำคัญของการเขียนระบบเพื่อให้ซอฟต์แวร์ตัดสินใจและทำงานซ้ำได้อย่างถูกต้อง การเลือกดึงคุณสมบัติของ if, switch, for, while, do-while และ foreach มาใช้งานให้ตรงกับโจทย์ จะทำให้โค้ดเป็นระบบ อ่านง่าย ดูแลรักษาง่าย และพร้อมสำหรับการก้าวไปสู้ผู้พัฒนาเว็บแอปพลิเคชันขั้นสูง


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