PHP Loop: For, ForEach, While, Do While [ตัวอย่าง]

⚡ สรุปอย่างชาญฉลาด

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

  • 🔁 ลูปทำหน้าที่อะไร: ลูปจะเรียกใช้บล็อกเดียวกันซ้ำๆ จนกว่าเงื่อนไขจะเป็นจริง ช่วยให้คุณไม่ต้องเขียนคำสั่งซ้ำซ้อน
  • 🔢 สำหรับลูป: คำสั่ง `for` รวมตัวนับ เงื่อนไข และค่าเพิ่มไว้ในบรรทัดเดียว ทำให้เหมาะอย่างยิ่งเมื่อทราบจำนวนรอบการทำซ้ำ
  • 📦 ลูป Foreach: คำสั่ง foreach จะวนซ้ำผ่านทุกองค์ประกอบของอาร์เรย์แบบมีดัชนีหรือแบบเชื่อมโยง โดยไม่ต้องกำหนดตัวนับด้วยตนเอง
  • 🔄 ในขณะที่วนซ้ำ: ในขณะที่ระบบจะตรวจสอบเงื่อนไขก่อนการทำงานแต่ละครั้ง ดังนั้นตัวโปรแกรมอาจทำงานศูนย์ครั้งหากเงื่อนไขเริ่มต้นเป็นเท็จ
  • 1️⃣ ลูป Do-While: คำสั่ง do-while จะตรวจสอบเงื่อนไขหลังจากส่วนของโค้ด ซึ่งรับประกันว่าบล็อกโค้ดจะทำงานอย่างน้อยหนึ่งครั้ง
  • 🧭 การเลือกวงจร: ใช้คำสั่ง `for` และ `foreach` สำหรับการนับและอาร์เรย์ ใช้คำสั่ง `while` สำหรับการทำซ้ำตามเงื่อนไข และใช้คำสั่ง `do-while` เมื่อต้องการรับประกันว่าจะวนซ้ำอย่างน้อยหนึ่งครั้ง
  • 🤖 AI ช่วยเหลือ: เครื่องมือ AI สามารถปรับปรุงลูป แปลงลูป for ให้เป็นฟังก์ชันอาร์เรย์ และค้นหาสาเหตุของลูปที่ไม่สิ้นสุดได้

ลูป PHP

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

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

PHP สำหรับลูป

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

ไวยากรณ์ มีโครงสร้างพื้นฐานดังต่อไปนี้

<?php
for (initialize; condition; increment){

// code to be executed

}
?>

ที่นี่

  • "สำหรับ…{…}" คือบล็อกลูป
  • "ในการเริ่มต้นโดยปกติแล้ว "จะเป็นจำนวนเต็ม ซึ่งใช้สำหรับกำหนดค่าเริ่มต้นของตัวนับ
  • "เงื่อนไข" คือเงื่อนไขที่จะถูกประเมินในทุกการทำงานของ PHP หากเงื่อนไขนี้เป็นจริง การทำงานของลูป for จะดำเนินต่อไป หากเงื่อนไขนี้เป็นเท็จ การทำงานของลูป for จะสิ้นสุดลง
  • “เพิ่มขึ้น” ใช้เพื่อเพิ่มค่าเริ่มต้นของตัวนับจำนวนเต็ม

มันทำงานอย่างไร. ผังงานที่แสดงด้านล่างนี้แสดงให้เห็นว่าลูป for ทำงานอย่างไร PHP โรงงาน

PHP สำหรับลูป

วิธีการเขียนโค้ด โค้ดด้านล่างใช้ลูป for เพื่อพิมพ์ค่าของการคูณ 10 ด้วย 0 ถึง 9

<?php

for ($i = 0; $i < 10; $i++){

$product = 10 * $i;

echo "The product of 10 * $i is $product <br/>";
}

?>

Output:

The product of 10 * 0 is 0
The product of 10 * 1 is 10
The product of 10 * 2 is 20
The product of 10 * 3 is 30
The product of 10 * 4 is 40
The product of 10 * 5 is 50
The product of 10 * 6 is 60
The product of 10 * 7 is 70
The product of 10 * 8 is 80
The product of 10 * 9 is 90

ลูป foreach ใน PHP

ลูป foreach ในภาษา PHP ใช้สำหรับวนซ้ำค่าในอาร์เรย์ โดยมีไวยากรณ์พื้นฐานดังต่อไปนี้

<?php
foreach($array_variable as $array_values){

block of code to be executed

}
?>

ที่นี่

  • "แต่ละ(…){…}" คือโค้ดบล็อกลูป foreach
  • “$array_variable” คือตัวแปรอาร์เรย์ที่จะวนซ้ำ
  • “$array_values” เป็นตัวแปรชั่วคราวที่เก็บค่าของรายการในอาร์เรย์ปัจจุบัน
  • “บล็อกของโค้ด…” คือชิ้นส่วนของโค้ดที่ดำเนินการกับค่าอาร์เรย์

มันทำงานอย่างไร. ผังงานที่แสดงด้านล่างนี้อธิบายวิธีการทำงานของลูป foreach

PHP สำหรับแต่ละวง

ตัวอย่างการปฏิบัติจริง โค้ดด้านล่างนี้ใช้ลูป foreach เพื่ออ่านและพิมพ์องค์ประกอบของอาร์เรย์

<?php

$animals_list = array("Lion","Wolf","Dog","Leopard","Tiger");

foreach($animals_list as $array_values){

echo $array_values . "<br>";

}

?>

Output:

Lion
Wolf
Dog
Leopard
Tiger

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

<?php

$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");

foreach($persons as $key => $value){

echo "$key is $value"."<br>";

}

?>

ชื่อถูกใช้เป็นคีย์อาร์เรย์และเพศเป็นค่า

Output:

Mary is Female
John is Male
Mirriam is Female

ลูป while ใน PHP

ลูป while ใช้สำหรับเรียกใช้บล็อกโค้ดซ้ำๆ จนกว่าเงื่อนไขที่กำหนดไว้จะเป็นจริง

เมื่อใดควรใช้ while ลูป

  • ในขณะที่ลูปถูกใช้เพื่อรันบล็อคโค้ดจนกว่าเงื่อนไขบางอย่างจะเป็นจริง
  • คุณสามารถใช้ while วนซ้ำเพื่ออ่านบันทึกที่ส่งคืนจาก ฐานข้อมูล.

ประเภทของ while loop

  • ทำ...ในขณะที่ – ดำเนินการบล็อคโค้ดอย่างน้อยหนึ่งครั้งก่อนที่จะประเมินเงื่อนไข
  • ขณะที่ ... – ตรวจเช็คสภาพก่อน. หากประเมินเป็นจริง บล็อกของโค้ดจะถูกดำเนินการตราบใดที่เงื่อนไขเป็นจริง หากประเมินเป็นเท็จ การดำเนินการของ while loop จะสิ้นสุดลง

ลูป while มีรูปแบบประโยคดังนี้

<?php
while (condition){

block of code to be executed;

}
?>

ที่นี่

  • "ในขณะที่(…){…}" คือโค้ดบล็อกลูป while
  • "เงื่อนไข" คือเงื่อนไขที่ต้องประเมินโดยลูป while
  • “บล็อคโค้ด…” คือโค้ดที่จะดำเนินการหากตรงตามเงื่อนไข

มันทำงานอย่างไร. แผนผังแสดงขั้นตอนการทำงานด้านล่างนี้ อธิบายวิธีการทำงานของลูป while

ในขณะที่วนซ้ำ

ตัวอย่างที่เป็นรูปธรรม โค้ดด้านล่างนี้ใช้ลูป while เพื่อพิมพ์ตัวเลข 1 ถึง 5

<?php

$i = 0;

while ($i < 5){

echo $i + 1 . "<br>";

$i++;

}

?>

Output:

1
2
3
4
5

PHP Do While Loop

ความแตกต่างระหว่างลูป while และลูป do-while คือ ลูป do-while จะทำงานอย่างน้อยหนึ่งครั้งก่อนที่จะประเมินเงื่อนไข

ต่อไปนี้เราจะมาดูไวยากรณ์พื้นฐานของลูป do-while กัน

<?php
do{

block of code to be executed

} while(condition);
?>

ที่นี่

  • “ทำ{…} ในขณะที่(…)” คือโค้ดบล็อกลูป do-while
  • "เงื่อนไข" คือเงื่อนไขที่ต้องประเมินโดยลูป while
  • “บล็อคโค้ด…” คือโค้ดที่จะถูกเรียกใช้งานอย่างน้อยหนึ่งครั้งโดยลูป do-while

มันทำงานอย่างไร. แผนผังแสดงขั้นตอนการทำงานด้านล่างนี้ อธิบายวิธีการทำงานของลูป do-while

PHP ทำในขณะที่

ตัวอย่างที่เป็นรูปธรรม ต่อไปนี้เราจะปรับเปลี่ยนตัวอย่างลูป while และนำไปใช้โดยใช้ลูป do-while โดยกำหนดค่าเริ่มต้นของตัวนับเป็น 9

โค้ดด้านล่างนี้เป็นการนำตัวอย่างที่แก้ไขข้างต้นไปใช้

<?php

$i = 9;

do{

echo "$i is"." <br>";

}
while($i < 9);

?>

ผลลัพธ์ของรหัสข้างต้น:

9

หมายเหตุตัวอย่างข้างต้นแสดงผลลัพธ์เป็น 9 เท่านั้น เนื่องจากลูป do-while จะทำงานอย่างน้อยหนึ่งครั้ง แม้ว่าเงื่อนไขที่กำหนดไว้จะเป็นเท็จก็ตาม

คำถามที่พบบ่อย

ใช่แล้ว คุณสามารถใช้ array_reverse() ร่วมกับลูป foreach เพื่อวนดูองค์ประกอบในลำดับย้อนกลับ หรือใช้ลูป for ที่เริ่มต้นที่ค่า count($array) – 1 แล้วลดค่าดัชนีลงไปจนถึงศูนย์

คำสั่ง break รับค่าตัวเลข ดังนั้น break 2; จะออกจากทั้งลูปด้านในและลูปด้านนอกพร้อมกัน ซึ่งดูเรียบร้อยกว่าการใช้ตัวแปร flag เพื่อหยุดลูปด้านนอก

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

ใช่แล้ว AI สามารถตรวจจับการทำงานซ้ำซ้อนภายในลูป แนะนำให้ย้ายออกไปไว้ด้านนอก และแทนที่ลูปที่เขียนด้วยมือด้วยฟังก์ชันอาร์เรย์ เช่น array_map หรือ array_filter ในกรณีที่โค้ดอ่านง่ายขึ้น

ใช่แล้ว AI สามารถเขียนลูป for ที่ใช้ดัชนีใหม่เป็น foreach เมื่อคุณกำลังวนลูปในอาร์เรย์ หรือเป็น array_map หรือ array_sum เมื่อลูปนั้นแค่แปลงหรือรวมค่าเท่านั้น ทดสอบผลลัพธ์หลังจากนั้นได้เลย

สรุปโพสต์นี้ด้วย: