โปรแกรม php https://onecompiler.com/php
การพัฒนาโปรแกรมหรือแอปพลิเคชันในภาษา PHP จำเป็นต้องอาศัยความเข้าใจเกี่ยวกับ โครงสร้างควบคุม (Control Structures) ซึ่งเป็นกลไกที่ช่วยให้โปรแกรมสามารถทำงานได้อย่างถูกต้องตามลำดับหรือเงื่อนไขที่กำหนด โครงสร้างควบคุมเป็นส่วนสำคัญที่ทำให้โปรแกรมสามารถตัดสินใจและดำเนินงานซ้ำได้อย่างมีประสิทธิภาพ
PHP มีชุดคำสั่งสำหรับการจัดการโครงสร้างควบคุมที่หลากหลาย เช่น 1)โครงสร้างเงื่อนไข (if, else, switch) 2)โครงสร้างวนซ้ำ (for, while, do-while) 3)โครงสร้างเฉพาะสำหรับอาร์เรย์ (foreach) ในบทนี้ เราจะทำความเข้าใจเกี่ยวกับรูปแบบการใช้งานโครงสร้างเหล่านี้โดยละเอียด พร้อมตัวอย่างการใช้งานที่ชัดเจน
3.1 โครงสร้างเงื่อนไขในภาษา PHP (If, else, Switch)
โครงสร้างเงื่อนไข (Conditional Structure) เป็นกลไกสำคัญในการพัฒนาโปรแกรมที่ช่วยให้โปรแกรมสามารถตัดสินใจเลือกกระบวนการทำงานที่เหมาะสมตามสถานการณ์ที่กำหนด โดยในภาษา PHP โครงสร้างเงื่อนไขประกอบด้วยคำสั่งหลัก ได้แก่ if, else, และ switch ซึ่งมีรายละเอียดการใช้งานดังนี้:
คำสั่ง if ใช้สำหรับตรวจสอบเงื่อนไข หากเงื่อนไขที่กำหนดเป็น จริง (true) โปรแกรมจะทำงานตามคำสั่งที่อยู่ในบล็อกของ if
โครงสร้างคำสั่ง:
if (เงื่อนไข) {
// คำสั่งที่จะทำเมื่อเงื่อนไขเป็นจริง
}
ตัวอย่าง:
<?php
$score = 85;
if ($score >= 80) {
echo "คุณได้เกรด A";
}
?>
ผลลัพธ์:
คุณได้เกรด A
ใช้เมื่อมี 2 เงื่อนไขที่ต้องการตรวจสอบ โดยทำงานตามคำสั่งในบล็อก else หากเงื่อนไขใน if ไม่เป็นจริง
โครงสร้างคำสั่ง:
if (เงื่อนไข) {
// คำสั่งที่จะทำเมื่อเงื่อนไขเป็นจริง
} else {
// คำสั่งที่จะทำเมื่อเงื่อนไขเป็นเท็จ
}
ตัวอย่าง:
<?php
$age = 15;
if ($age >= 18) {
echo "คุณสามารถเข้าร่วมกิจกรรมได้";
} else {
echo "คุณยังไม่สามารถเข้าร่วมกิจกรรมได้";
}
?>
ผลลัพธ์:
คุณยังไม่สามารถเข้าร่วมกิจกรรมได้
ใช้สำหรับตรวจสอบหลายเงื่อนไข โดยการตรวจสอบจะดำเนินการทีละเงื่อนไขจากบนลงล่าง หากพบเงื่อนไขที่ จริง จะหยุดการตรวจสอบและดำเนินการคำสั่งในบล็อกนั้นทันที
โครงสร้างคำสั่ง:
if (เงื่อนไข1) {
// คำสั่งเมื่อเงื่อนไข1 เป็นจริง
} elseif (เงื่อนไข2) {
// คำสั่งเมื่อเงื่อนไข2 เป็นจริง
} else {
// คำสั่งเมื่อไม่มีเงื่อนไขใดเป็นจริง
}
ตัวอย่าง:
<?php
$score = 65;
if ($score >= 80) {
echo "เกรด A";
} elseif ($score >= 70) {
echo "เกรด B";
} elseif ($score >= 60) {
echo "เกรด C";
} else {
echo "เกรด F";
}
?>
ผลลัพธ์:
เกรด C
ข้อ 1 เขียนโปรแกรมตรวจสอบว่าตัวเลขที่กรอกเป็นเลขคู่หรือเลขคี่ แสดงข้อความ even number / odd number
ข้อ 2 เขียนโปรแกรม โดยใช้ if-else
โปรแกรมนี้จะรับค่าตัวเลขจากผู้ใช้ผ่านฟังก์ชัน input() แล้วแปลงเป็นจำนวนเต็ม (int).
ใช้ if เพื่อตรวจสอบว่าตัวเลขเป็นบวก (> 0).
หากเป็นบวก จะตรวจสอบต่อว่าเป็นเลขคู่หรือเลขคี่ แล้วแสดงผลลัพธ์. positive even number / positive odd number
หากตัวเลขเป็นลบ (< 0), ตรวจสอบเงื่อนไขว่าตัวเลขเป็นลบ และตรวจสอบต่อว่าเป็นเลขคู่หรือเลขคี่. negative even number / negative odd number
หากตัวเลขไม่ใช่บวกหรือลบ (หมายถึงตัวเลขเป็นศูนย์), จะใช้ else แสดงข้อความว่าตัวเลขเป็นศูนย์ The number is zero
คำสั่ง switch ใช้ตรวจสอบค่าของตัวแปรหรือเงื่อนไขที่มีผลลัพธ์แน่นอน และเลือกดำเนินการตามค่าที่ตรงกับกรณี (case) ที่กำหนดไว้
โครงสร้างคำสั่ง:
switch (ตัวแปรหรือค่า) {
case ค่า1:
// คำสั่งที่จะทำเมื่อค่าตรงกับค่า1
break;
case ค่า2:
// คำสั่งที่จะทำเมื่อค่าตรงกับค่า2
break;
default:
// คำสั่งที่จะทำเมื่อไม่มีค่าที่ตรง
break;
}
ตัวอย่าง:
<?php
$day = "Wednesday";
switch ($day) {
case "Monday":
echo "วันนี้เป็นวันจันทร์";
break;
case "Tuesday":
echo "วันนี้เป็นวันอังคาร";
break;
case "Wednesday":
echo "วันนี้เป็นวันพุธ";
break;
default:
echo "วันนี้ไม่ตรงกับวันที่ระบุ";
break;
}
?>
ผลลัพธ์:
วันนี้เป็นวันพุธ
โครงสร้างเงื่อนไข (if, else, switch) ในภาษา PHP ช่วยให้โปรแกรมสามารถตัดสินใจทำงานตามสถานการณ์ที่เกิดขึ้นจริง โดยเลือกใช้คำสั่งที่เหมาะสมกับเงื่อนไขของโปรแกรม เช่น
ใช้ if-else สำหรับการเปรียบเทียบเงื่อนไขที่หลากหลาย
ใช้ switch เมื่อต้องการตรวจสอบค่าคงที่หลายค่า
การเลือกใช้โครงสร้างเงื่อนไขที่เหมาะสมช่วยเพิ่มประสิทธิภาพและลดความซับซ้อนของโค้ด
โครงสร้างวนซ้ำ (Looping Structures) ในภาษา PHP เป็นเครื่องมือสำคัญที่ช่วยให้โปรแกรมสามารถทำงานซ้ำได้ตามจำนวนรอบหรือเงื่อนไขที่กำหนด การใช้โครงสร้างวนซ้ำช่วยลดความซ้ำซ้อนของโค้ด ทำให้โปรแกรมมีประสิทธิภาพและจัดการกับข้อมูลได้อย่างมีระเบียบ
คำสั่ง for ใช้สำหรับการวนซ้ำที่จำนวนรอบการทำงานแน่นอน โดยต้องกำหนดตัวแปรเริ่มต้น เงื่อนไข และการเพิ่มหรือลดค่าของตัวแปรในแต่ละรอบ
โครงสร้างคำสั่ง
for (การกำหนดค่าเริ่มต้น; เงื่อนไข; การเปลี่ยนค่าของตัวแปร) {
// คำสั่งที่จะทำในแต่ละรอบ
}
ตัวอย่าง
<?php
for ($i = 1; $i <= 5; $i++) {
echo "รอบที่ $i<br>";
}
?>
ผลลัพธ์
รอบที่ 1
รอบที่ 2
รอบที่ 3
รอบที่ 4
รอบที่ 5
การประยุกต์ใช้:
สามารถใช้คำสั่ง for กับการทำงานซ้ำที่มีการเปลี่ยนแปลงค่าตัวแปร เช่น การพิมพ์ตัวเลข, การวนซ้ำข้อมูลในอาร์เรย์ หรือการคำนวณที่ต้องการรอบการทำงานแน่นอน
คำสั่ง while ใช้สำหรับการวนซ้ำในกรณีที่ไม่ทราบจำนวนรอบการทำงานที่แน่นอน โดยจะตรวจสอบเงื่อนไขก่อนเริ่มการทำงานในแต่ละรอบ
โครงสร้างคำสั่ง
while (เงื่อนไข) {
// คำสั่งที่จะทำในแต่ละรอบ
}
ตัวอย่าง
<?php
$i = 1;
while ($i <= 5) {
echo "รอบที่ $i<br>";
$i++;
}
?>
ผลลัพธ์
รอบที่ 1
รอบที่ 2
รอบที่ 3
รอบที่ 4
รอบที่ 5
การประยุกต์ใช้:
คำสั่ง while เหมาะกับกรณีที่ต้องวนซ้ำจนกว่าจะถึงเงื่อนไข เช่น การตรวจสอบข้อมูลจากฐานข้อมูลหรือการรับค่าจากผู้ใช้
คำสั่ง do-while คล้ายกับ while แต่มีความแตกต่างสำคัญคือ คำสั่งในบล็อกจะถูกดำเนินการอย่างน้อยหนึ่งครั้งก่อนที่จะตรวจสอบเงื่อนไข
โครงสร้างคำสั่ง
do {
// คำสั่งที่จะทำในแต่ละรอบ
} while (เงื่อนไข);
ตัวอย่าง
<?php
$i = 1;
do {
echo "รอบที่ $i<br>";
$i++;
} while ($i <= 5);
?>
ผลลัพธ์
รอบที่ 1
รอบที่ 2
รอบที่ 3
รอบที่ 4
รอบที่ 5
การประยุกต์ใช้:
do-while เหมาะสำหรับกรณีที่ต้องการให้คำสั่งในบล็อกถูกดำเนินการอย่างน้อย 1 ครั้ง เช่น การขอรหัสผ่านจากผู้ใช้จนกว่าจะถูกต้อง
คำสั่ง for: ใช้สำหรับการวนซ้ำที่จำนวนรอบแน่นอน
คำสั่ง while: ใช้เมื่อจำนวนรอบไม่แน่นอน แต่มีเงื่อนไขสำหรับการตรวจสอบก่อนเริ่มทำงาน
คำสั่ง do-while: เหมาะสำหรับสถานการณ์ที่ต้องการให้คำสั่งทำงานอย่างน้อยหนึ่งครั้ง
การเลือกใช้โครงสร้างวนซ้ำที่เหมาะสมจะช่วยให้โค้ดมีประสิทธิภาพและทำงานได้อย่างราบรื่นตามความต้องการ
คำสั่ง foreach เป็นโครงสร้างที่ออกแบบมาโดยเฉพาะสำหรับการวนซ้ำในอาร์เรย์หรือวัตถุ (object) โดยคำสั่งนี้ช่วยให้สามารถดึงค่าหรือคู่คีย์-ค่าในอาร์เรย์มาใช้งานได้อย่างง่ายดายและลดความซับซ้อนเมื่อเทียบกับโครงสร้างวนซ้ำอื่น ๆ เช่น for หรือ while
คำสั่ง foreach จะทำการวนซ้ำแต่ละค่าที่อยู่ในอาร์เรย์ทีละตัว และดำเนินการคำสั่งที่กำหนดภายในบล็อก
โครงสร้างคำสั่ง
foreach (array as $value) {
// คำสั่งที่ต้องการดำเนินการกับแต่ละค่า
}
array: ชื่อของอาร์เรย์ที่ต้องการวนซ้ำ
$value: ตัวแปรที่ใช้เก็บค่าของแต่ละองค์ประกอบในอาร์เรย์
1) การดึงค่าในอาร์เรย์
ตัวอย่าง:
<?php
$fruits = ["แอปเปิล", "กล้วย", "ส้ม"];
foreach ($fruits as $fruit) {
echo "ผลไม้: $fruit<br>";
}
?>
ผลลัพธ์:
ผลไม้: แอปเปิล
ผลไม้: กล้วย
ผลไม้: ส้ม
2) การดึงคีย์และค่าจากอาร์เรย์
ในกรณีที่อาร์เรย์มีโครงสร้างแบบคู่คีย์-ค่า (key-value pair) สามารถดึงทั้งคีย์และค่าออกมาได้พร้อมกัน
โครงสร้างคำสั่ง
foreach (array as $key => $value) {
// คำสั่งที่ต้องการดำเนินการกับคีย์และค่า
}
ตัวอย่าง:
<?php
$person = [ "ชื่อ" => "สมชาย",
"อายุ" => 30,
"อาชีพ" => "โปรแกรมเมอร์" ];
foreach ($person as $key => $value) {
echo "$key: $value<br>";
}
?>
ผลลัพธ์:
ชื่อ: สมชาย
อายุ: 30
อาชีพ: โปรแกรมเมอร์
1) การประมวลผลข้อมูลในอาร์เรย์แบบหลายมิติ เมื่ออาร์เรย์มีโครงสร้างแบบหลายมิติ สามารถใช้คำสั่ง foreach ซ้อนกันได้
ตัวอย่าง:
<?php
$students = [ ["ชื่อ" => "สมชาย", "เกรด" => "A"],
["ชื่อ" => "สมหญิง", "เกรด" => "B"],
["ชื่อ" => "วิชัย", "เกรด" => "C"] ];
foreach ($students as $student) {
foreach ($student as $key => $value) {
echo "$key: $value ";
}
echo "<br>";
}
?>
ผลลัพธ์:
ชื่อ: สมชาย เกรด: A
ชื่อ: สมหญิง เกรด: B
ชื่อ: วิชัย เกรด: C
2) การแก้ไขค่าภายในอาร์เรย์โดยอ้างอิงตัวแปรสามารถใช้เครื่องหมาย & เพื่อแก้ไขค่าภายในอาร์เรย์ได้โดยตรง
ตัวอย่าง:
<?php
$numbers = [1, 2, 3];
foreach ($numbers as &$number) {
$number *= 2; // คูณค่าในอาร์เรย์ด้วย 2
}
print_r($numbers);
?>
ผลลัพธ์:
Array ( [0] => 2 [1] => 4 [2] => 6 )
หากต้องการแก้ไขค่าในอาร์เรย์เดิม ต้องใช้อ้างอิง (&) มิฉะนั้นค่าจะไม่ถูกเปลี่ยน
foreach ไม่สามารถใช้กับตัวแปรที่ไม่ใช่อาร์เรย์หรือวัตถุได้
คำสั่ง foreach เป็นโครงสร้างวนซ้ำที่มีประสิทธิภาพและใช้งานง่าย โดยเฉพาะเมื่อต้องการจัดการกับอาร์เรย์หรือข้อมูลในรูปแบบคู่คีย์-ค่า ช่วยลดความซับซ้อนของโค้ดและทำให้การประมวลผลข้อมูลสะดวกยิ่งขึ้น การเลือกใช้งาน foreach อย่างเหมาะสมจะช่วยเพิ่มประสิทธิภาพและความเข้าใจในโค้ดได้มากขึ้น
แบบฝึกหัดท้ายบท
ข้อที่ 1: การใช้โครงสร้างเงื่อนไขแบบ if-else
คำสั่ง:
เขียนโปรแกรม PHP เพื่อรับค่าคะแนนของนักเรียนจากฟอร์ม (0-100) แล้วแสดงผลเกรดตามเงื่อนไขดังนี้:
คะแนน >= 80: เกรด A
คะแนน >= 70: เกรด B
คะแนน >= 60: เกรด C
คะแนน >= 50: เกรด D
คะแนน < 50: เกรด F
ถ้ากรอกคะแนนไม่อยู่ในช่วง 0-100 ให้แสดงข้อความ "กรอกคะแนนผิดพลาด
ข้อที่ 2: การใช้โครงสร้างวนลูป for
คำสั่ง:
เขียนโปรแกรม PHP เพื่อสร้างตารางสูตรคูณแม่ 7 โดยแสดงผลลัพธ์ในรูปแบบ
ตัวอย่างผลลัพธ์:
7 x 1 = 7
7 x 2 = 14
...
7 x 12 = 84
ข้อที่ 3: การใช้โครงสร้างวนลูป while
คำสั่ง:
เขียนโปรแกรม PHP เพื่อคำนวณผลรวมของเลขคู่จาก 1 ถึง 50
ข้อที่ 4: การประยุกต์โครงสร้างควบคุม
คำสั่ง:
เขียนโปรแกรม PHP เพื่อสร้างเมนูแบบไดนามิก โดยให้ผู้ใช้กรอกจำนวนเมนูที่ต้องการ (1-10) แล้วแสดงผลเป็นรายการลิงก์ในหน้าเว็บ
ตัวอย่างผลลัพธ์:
หากผู้ใช้กรอก "3":
menu 1
menu 2
menu 3