Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

คำสั่ง break ใน PHP

บทนำ

break เป็น Looping Control Keyword ใน PHP เมื่อโปรแกรมเจอ break ภายใน while, do-while, for, foreach หรือ switch จะข้าม Statement ที่เหลือใน Loop/Switch ไปทำงาน Statement ถัดไป

Syntax

while (expr) {
    ...
    if (expr1) break;
    ...
}

ตัวอย่าง: ออกจาก Loop ด้วยเงื่อนไข

While Loop อ่าน Input จนกว่าจะพิมพ์ "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

Break ใน Nested Loops

Break แบบไม่มี Argument ออกจาก Current Loop เท่านั้น:

<?php
for ($i = 1; $i <= 5; $i++) {
    echo "Start Of outer loop\n";
    for ($j = 1; $j <= 5; $j++) {
        if ($j >= 3) break;  // ออกจาก Inner Loop เท่านั้น
        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
... (ซ้ำสำหรับ i=3,4,5)

Break กับ Numeric Argument

break N ออกจาก N ระดับของ Nested Structures:

<?php
for ($i = 1; $i <= 5; $i++) {
    echo "Start Of outer loop\n";
    for ($j = 1; $j <= 5; $j++) {
        if ($j > 3) break 2;  // ออกจาก Outer Loop ด้วย (Level 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

Break ใน Switch

ป้องกัน Fall-through เมื่อเจอ Case ที่ต้องการ:

<?php
$x = 25;
$var = (int)readline("enter 1 for sqrt, 2 for square: ");

switch ($var) {
    case 1:
        echo sqrt($x) . "\n";
        break;
    case 2:
        echo pow($x, 2) . "\n";
        break;
}
?>

ผลลัพธ์

enter 1 for sqrt, 2 for square: 2
625
enter 1 for sqrt, 2 for square: 1
5

ข้อควรระวัง

  • Break ใช้ได้ใน Loop (for, foreach, while, do-while) และ Switch เท่านั้น
  • Break ไม่ทำงานใน If/Else (ต้องใช้ Return หรือ Restructure Logic)
  • Break N ต้องเป็น Integer Literal (ไม่ใช่ Variable)
  • ใน Switch หากไม่มี Break จะ Fall-through ไป Case ถัดไป