การพัฒนาโปรแกรมด้วยภาษา PHP จำเป็นต้องอาศัย “โครงสร้างควบคุม” (Control Structures) เพื่อกำหนดลำดับการทำงานของโปรแกรม ไม่ว่าจะเป็นการตัดสินใจตามเงื่อนไข หรือการทำงานซ้ำตามจำนวนรอบที่กำหนด โครงสร้างเหล่านี้ช่วยให้โปรแกรมสามารถทำงานได้อย่างยืดหยุ่น มีประสิทธิภาพ และตอบสนองต่อสถานการณ์ต่าง ๆ ได้อย่างเหมาะสม
ในบทนี้จะกล่าวถึงโครงสร้างควบคุมที่สำคัญใน PHP ได้แก่
if, else, switch)for, while, do-while)foreachโครงสร้างเงื่อนไข (Conditional Structure) ใช้สำหรับตรวจสอบสถานะหรือเงื่อนไขที่กำหนด และสั่งให้โปรแกรมทำงานแตกต่างกันตามผลลัพธ์ของเงื่อนไขนั้น
คำสั่ง if ใช้ตรวจสอบว่าเงื่อนไขเป็นจริงหรือไม่ หากเงื่อนไขเป็นจริง โปรแกรมจะทำงานภายในบล็อกคำสั่ง
if (เงื่อนไข) {
// คำสั่งเมื่อเงื่อนไขเป็นจริง
}ตัวอย่าง<?php
$score = 85;
if ($score >= 80) {
echo "คุณได้เกรด A";
}
?>ใช้เมื่อมี 2 กรณีในการตัดสินใจ หากเงื่อนไขไม่เป็นจริง โปรแกรมจะทำงานในส่วน else
<?php
$age = 15;
if ($age >= 18) {
echo "คุณสามารถเข้าร่วมกิจกรรมได้";
} else {
echo "คุณยังไม่สามารถเข้าร่วมกิจกรรมได้";
}
?>ใช้สำหรับตรวจสอบหลายเงื่อนไข โดยโปรแกรมจะทำงานในเงื่อนไขแรกที่เป็นจริง
<?php
$score = 65;
if ($score >= 80) {
echo "เกรด A";
} elseif ($score >= 70) {
echo "เกรด B";
} elseif ($score >= 60) {
echo "เกรด C";
} else {
echo "เกรด F";
}
?>แบบฝึกหัด: ตรวจสอบเลขคู่หรือเลขคี่
<?php
$number = 7;
if ($number % 2 == 0) {
echo "even number";
} else {
echo "odd number";
}
?>แบบฝึกหัด: ตรวจสอบจำนวนบวก ลบ หรือศูนย์
<?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";
}
?>คำสั่ง switch ใช้ตรวจสอบค่าที่มีหลายกรณี และเลือกทำงานตามค่าที่ตรงกับ case
<?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 |
|---|---|
| เหมาะกับเงื่อนไขซับซ้อน | เหมาะกับค่าคงที่หลายกรณี |
| ใช้เปรียบเทียบได้หลากหลาย | อ่านง่ายเมื่อมีหลาย case |
| ยืดหยุ่นสูง | โค้ดกระชับกว่า |
โครงสร้างวนซ้ำ (Loop) ใช้สำหรับทำงานเดิมซ้ำหลายครั้ง ช่วยลดความซ้ำซ้อนของโค้ด
เหมาะสำหรับกรณีที่ทราบจำนวนรอบแน่นอน
<?php
for ($i = 1; $i <= 5; $i++) {
echo "รอบที่ $i<br>";
}
?>ใช้เมื่อจำนวนรอบไม่แน่นอน แต่มีเงื่อนไขควบคุม
<?php
$i = 1;
while ($i <= 5) {
echo "รอบที่ $i<br>";
$i++;
}
?>คล้าย while แต่จะทำงานอย่างน้อย 1 ครั้งก่อนตรวจสอบเงื่อนไข
<?php
$i = 1;
do {
echo "รอบที่ $i<br>";
$i++;
} while ($i <= 5);
?>| คำสั่ง | เหมาะกับการใช้งาน |
|---|---|
| for | จำนวนรอบแน่นอน |
| while | จำนวนรอบไม่แน่นอน |
| do-while | ต้องการให้ทำงานอย่างน้อย 1 ครั้ง |
คำสั่ง foreach ใช้สำหรับวนซ้ำข้อมูลในอาร์เรย์โดยเฉพาะ ทำให้เขียนโค้ดง่ายและอ่านเข้าใจได้สะดวก
การดึงค่าจากอาร์เรย์
<?php
$fruits = ["แอปเปิล", "กล้วย", "ส้ม"];
foreach ($fruits as $fruit) {
echo "ผลไม้: $fruit<br>";
}
?>การดึงทั้งคีย์และค่า
<?php
$person = [
"ชื่อ" => "สมชาย",
"อายุ" => 30,
"อาชีพ" => "โปรแกรมเมอร์"
];
foreach ($person as $key => $value) {
echo "$key: $value<br>";
}
?>foreach กับอาร์เรย์หลายมิติ
<?php
$students = [
["ชื่อ" => "สมชาย", "เกรด" => "A"],
["ชื่อ" => "สมหญิง", "เกรด" => "B"]
];
foreach ($students as $student) {
foreach ($student as $key => $value) {
echo "$key: $value ";
}
echo "<br>";
}
?>โครงสร้างควบคุมในภาษา PHP เป็นพื้นฐานสำคัญที่ช่วยให้โปรแกรมสามารถตัดสินใจและทำงานซ้ำได้อย่างมีประสิทธิภาพ การเลือกใช้ if, switch, for, while, do-while และ foreach ให้เหมาะสมกับลักษณะงาน จะช่วยให้โค้ดอ่านง่าย ลดความซับซ้อน และพัฒนาโปรแกรมได้อย่างเป็นระบบมากขึ้น