PHP Loop (การวนซ้ำ)

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

โดยใน PHP มีลูป 4 ประเภทดังนี้

  1. while วนซ้ำตราบเท่าที่เงื่อนไขเป็นจริง
  2. do …. while วนซ้ำหนึ่งครั้ง จากนั้นวนซ้ำตราบที่เงื่อนไขยังเป็นจริง
  3. for วนซ้ำตามเงื่อนไขที่ระบุ
  4. foreach วนซ้ำสำหรับอาเรย์

1.while

ไวยากรณ์ (Syntax)

while (เงื่อนไขที่เป็นจริง) {
  // ดำเนินการซ้ำๆ
}

 

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

<?php

$number = 0;

while($number < 10){
    echo $number."<br>";
    $number++;
}

?>

ไฟล์ที่ 1 while_loop.php

อธิบายไฟล์ที่ 1

  • เริ่มต้นด้วย สร้างตัวแปรชื่อ $number กำหนดค่าเริ่มต้นเป็น 0
  • สร้างเงื่อนไขภายใน while($number < 10) มีความหมายว่า ถ้าตัวแปร $number มีค่าน้อยกว่า 10 ให้แสดงผลค่าของ $number 
  • $number++; มีความหมายว่า ในทุกลูปจะทำการเพิ่มค่าของตัวแปร $number ทีละหนึ่ง

ผลลัพธ์ของไฟล์ที่ 1

0
1
2
3
4
5
6
7
8
9

2.do …. while

ไวยากรณ์ (Syntax)

do {
  // ดำเนินการ เช่น แสดงผลข้อมูล 
} while (เงื่อนไขที่เป็นจริง);

ลักษณะการทำงานของ do …. while คือ do…whileลูปเงื่อนไขจะถูกทดสอบหลังจากดำเนินการคำสั่งภายในลูป ซึ่งหมายความว่า do…while ลูปจะดำเนินการคำสั่งอย่างน้อยหนึ่งครั้งแม้ว่าเงื่อนไขจะเป็นเท็จก็ตาม

ตัวอย่างการใช้ do …. while

<?php

$number = 6;

do{
    echo $number."<br>";
    $number++;
}
while($number<=10);

?>

ไฟล์ที่ 2 do_while.php

จากไฟล์ที่ 2 สามารถอธิบายได้ว่า 

  • สร้างตัวแปรชื่อ $number และแทนค่าเป็น 6
  • แสดงผลค่าของ ตัวแปร $number ก่อนหนึ่งครั้ง
  • ทำการเช็คเงื่อนไขในส่วนของ while($number <= 10) ดำเนินการเงื่อนไขตราบเท่าที่ยังเป็นจริง

ผลลัพธ์ของไฟล์ที่ 2

6
7
8
9
10

 

3.For Loop

ไวยากรณ์ของ For Loop 

for (init counter; test counter; increment counter) {
  code to be executed for each iteration;
}

อธิบายเพิ่มเติม

  • init counter: ค่าเริ่มต้นนับลูป
  • test counter: ตรวจสอบเงื่อนไข หากเป็นจริงก็ทำการวนลูปต่อไป แต่ถ้าเป็นเท็จก็หยุดการวนลูป
  • increment counter: ตัวเพิิ่มค่าในการนับลูป

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

<?php
for($x = 10; $x <= 100; $x += 10){
    echo $x."<br>";
}
?>

ไฟล์ที่ 3 ตัวอย่างการใช้งาน for loop

จากไฟล์ที่ 3 สามารถอธิบายได้ว่า 

  • เริ่มต้นนับที่ 10 โดยที่นับไปเรื่อยๆ ให้มีค่าน้อยกว่าหรือเท่ากับ 100 โดยให้เพิ่มทีละ 10

ผลลัพธ์ไฟล์ที่ 3 

10
20
30
40
50
60
70
80
90
100

4.foreach Loop

ไวยากรณ์ของ foreach

foreach ($array as $value) {
  code to be executed;
}

อธิบายเพิ่มเติม

เป็นการวนซ้ำค่าของอาเรย์ แล้วเก็บไว้ที่ตัวแปรที่สร้างขึ้นใหม่

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

<?php
$fruits = array("Apple", "Banana", "Orange", "Coconut");

foreach($fruits as $fruit){
    echo $fruit."<br>";
}

?>

ไฟล์ที่ 4 การใช้งาน foreach พื้นฐาน

ผลลัพธ์ไฟล์ที่ 4 

Apple
Banana
Orange
Coconut

 

Break/Continue

  • break คือ หยุดการดำเนินการของลูป
  • continue คือ ข้ามการดำเนินการของบางลูป (ขึ้นอยู่กับเงื่อนไข)

1.ตัวอย่างการใช้งาน break

<?php

$x = 0;

while($x<=20){
    if($x == 5){
        break;
    }
    echo $x."<br>";
    $x++;
}

?>

ไฟล์ที่ 5 ตัวอย่างการใช้ break

ผลลัพธ์ของไฟล์ที่ 5

0
1
2
3
4

 

2.ตัวอย่างการใช้ continue

<?php
$x = 0;

while($x <= 10){   
    if($x == 4){
         $x++;
         continue;
    }
    
    echo $x."<br>";
    $x++;
}


?>

ไฟล์ที่ 6 ตัวอย่างการใช้งาน continue

ผลลัพธ์ของไฟล์ที่ 6

0
1
2
3
5
6
7
8
9
10