แนะนำตัว
แตกหัก คำสั่งเป็นหนึ่งในคีย์เวิร์ดควบคุมการวนซ้ำใน PHP เมื่อโฟลว์ของโปรแกรมพบกับ break ภายใน while คำสั่ง while สำหรับ foreach loop หรือโครงสร้างสวิตช์ คำสั่งที่เหลือใน loop/swtich จะถูกละทิ้งและคำสั่งหลังจากนั้นจะถูกดำเนินการ
ไวยากรณ์
while (expr) { .. .. if (expr1) break; .. .. }
ในตัวอย่างต่อไปนี้ ลูป while จะอ่านอินพุตของผู้ใช้ต่อไปจนกว่าจะป้อนสตริง END
ตัวอย่าง
<?php while (TRUE){ $var=readline("enter something (END to stop loop)"); if ($var=="END") break; echo "You entered $var\n"; } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
enter something (END to stop loop)Hello You entered Hello enter something (END to stop loop)PHP You entered PHP enter something (END to stop loop)END
คีย์เวิร์ด Continue สามารถมีอาร์กิวเมนต์ที่เป็นตัวเลขเพื่อระบุจำนวนระดับของ inne loop ที่จะข้ามได้ ค่าเริ่มต้นคือ 1
ในกรณีของการวนซ้ำซ้อน การแตกจะละทิ้งการวนซ้ำปัจจุบันเท่านั้น ในตัวอย่างต่อไปนี้ คำสั่ง break ถูกใช้ในวงใน
ตัวอย่าง
<?php for ($i = 1;$i<=5;$i++) { echo "Start Of outer loop\n"; for ($j=1;$j<=5;$j++) { if ($j >=3) break ; echo "I : $i J : $j"."\n"; } echo "End of inner loop\n"; } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
Start Of outer loop I : 1 J : 1 I : 1 J : 2 End of inner loop Start Of outer loop I : 2 J : 1 I : 2 J : 2 End of inner loop Start Of outer loop I : 3 J : 1 I : 3 J : 2 End of inner loop Start Of outer loop I : 4 J : 1 I : 4 J : 2 End of inner loop Start Of outer loop I : 5 J : 1 I : 5 J : 2 End of inner loop
break ยอมรับอาร์กิวเมนต์ตัวเลขซึ่งเป็นทางเลือก ซึ่งจะบอกจำนวนโครงสร้างที่ล้อมรอบซ้อนกันที่จะแยกออก ในตัวอย่างต่อไปนี้ แบ่ง 2 inner loop ออกจากวงนอกเช่นกัน
ตัวอย่าง
<?php for ($i = 1;$i<=5;$i++) { echo "Start Of outer loop\n"; for ($j=1;$j<=5;$j++) { if ($j >3) break 2 ; echo "I : $i J : $j"."\n"; } echo "End of inner loop\n"; } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
I : 1 J : 1 I : 1 J : 2 I : 1 J : 3
ในการสร้างสวิตช์ การแตกจะป้องกันไม่ให้โปรแกรมตกลงมาเมื่อได้ค่าตัวแปรการสลับที่ต้องการแล้ว
ตัวอย่าง
<?php $x=25; $var=(int)readline("enter a number 1 for square 2 for square root: "); switch($var){ case 1:echo sqrt($x). "\n"; break; case 2:echo pow($x, $var) . "\n"; } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
enter a number 1 for square 2 for square root: 2 625 enter a number 1 for square 2 for square root: 1 5