แนะนำตัว
แตกหัก คำสั่งเป็นหนึ่งในคีย์เวิร์ดควบคุมการวนซ้ำใน 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