Perbedaan antara break dan melanjutkan di PHP?

169

Apa perbedaan antara breakdan continuedalam PHP?

powtac
sumber

Jawaban:

517

breakmengakhiri loop sepenuhnya, continuecukup pintas iterasi saat ini dan pindah ke iterasi berikutnya.

while ($foo) {   <--------------------┐
    continue;    --- goes back here --┘
    break;       ----- jumps here ----┐
}                                     |
                 <--------------------┘

Ini akan digunakan seperti ini:

while ($droid = searchDroids()) {
    if ($droid != $theDroidYoureLookingFor) {
        continue; // ..the search with the next droid
    }

    $foundDroidYoureLookingFor = true;
    break; // ..off the search
}
tipuan
sumber
56
Penyalahgunaan fungsi ini menyebabkan hal ini: flickr.com/photos/24973901@N04/2762458387
neokio
7
Sukai jawaban ini! Ingatkan saya akan rekomendasi WP.org tentang Ketentuan Yoda: make.wordpress.org/core/handbook/coding-standards/php/…
Bob Gregor
4
7 tahun setelah jawaban ini tetapi layak untuk mengatakan ini. seperti dalam dokumen php dari v4 breakdan continuesama di switch. keduanya keluar dari sakelar. untuk keluar dari loop luar jika ada atau kurang gunakan continue 2.
Amin. Tarabaqi
@BobGregor Saat ini bagian itu dapat ditemukan di make.wordpress.org/core/handbook/best-practices/…
Douwe de Haan
@menerima, contoh dengan kode ini buruk. Anda menetapkan variabel yang tidak digunakan di mana pun. Edit yang disarankan lebih mudah dibaca.
Tajni
49

break keluar dari loop Anda, lanjutkan mulai dengan siklus berikutnya loop dengan segera.

Contoh:

$i = 10;
while (--$i)
{
    if ($i == 8)
    {
        continue;
    }
    if ($i == 5)
    {
        break;
    }
    echo $i . "\n";
}

akan menampilkan:

9
7
6
Hinek
sumber
1
+1; sama seperti pada dasarnya setiap bahasa lain yang menggunakan kata kunci ini.
Karl Knechtel
+1; hanya penjelasan sederhana dan contoh yang baik, bahkan adonan while(--$i)agak sulit untuk pemula.
@Omeid Saya setuju, itu rumit ... tapi saya tidak yakin dengan sintaks for-loop dari php dan malas untuk mencarinya
Hinek
Ini adalah contoh yang bagus!
demuro1
1
Contoh yang bagus. (Baris gema $ i. "\ N" membutuhkan tanda titik koma di akhir.)
user3563097
16

ISTIRAHAT:

break berakhirnya eksekusi untuk, foreach, while, do-while atau switch structure.

TERUS:

lanjutkan digunakan dalam struktur pengulangan untuk melewatkan sisa dari pengulangan loop saat ini dan melanjutkan eksekusi pada evaluasi kondisi dan kemudian awal pengulangan berikutnya.

Jadi tergantung pada kebutuhan Anda, Anda dapat mengatur ulang posisi yang saat ini dieksekusi dalam kode Anda ke tingkat yang berbeda dari sarang saat ini.

Juga, lihat di sini untuk detail seni Break dan Lanjutkan dengan sejumlah contoh

SW4
sumber
14

Untuk catatan:

Perhatikan bahwa dalam PHP pernyataan sakelar dianggap sebagai struktur pengulangan untuk tujuan melanjutkan .

Igor Parra
sumber
Saya baru saja digigit oleh "fitur" ini. Bagaimana saya bisa melanjutkan loop sementara berdasarkan hal-hal yang ditemukan dalam switch case?
MattBianco
1
@MattBianco, Anda gunakan continue 2dalam kasus itu.
flaviovs
5

break digunakan untuk keluar dari pernyataan loop, tetapi melanjutkan hanya menghentikan skrip pada kondisi tertentu dan kemudian melanjutkan pernyataan loop sampai mencapai akhir ..

for($i=0; $i<10; $i++){
    if($i == 5){
        echo "It reach five<br>";
        continue;
    }
    echo $i . "<br>";
}

echo "<hr>";

for($i=0; $i<10; $i++){
    if($i == 5){
         echo "It reach end<br>";
         break;
    }
    echo $i . "<br>";
}

Semoga ini bisa membantu Anda;

Joko Wandiro
sumber
4

Break mengakhiri loop / struktur kontrol saat ini dan melompat ke ujungnya, tidak peduli berapa kali loop akan diulang.

Lanjutkan melompat ke awal pengulangan berikutnya dari loop.

Bina Marga
sumber
4

'continue' digunakan dalam struktur looping untuk melewati sisa dari iterasi loop saat ini dan melanjutkan eksekusi pada evaluasi kondisi dan kemudian awal iterasi berikutnya.

'break' mengakhiri eksekusi dari arus untuk, foreach, while, do-while atau switch structure.

break menerima argumen numerik opsional yang memberitahukan berapa banyak struktur penutup bersarang yang harus dilanggar.

Lihat tautan berikut:

http://www.php.net/manual/en/control-structures.break.php

http://www.php.net/manual/en/control-structures.continue.php

Semoga ini bisa membantu ..

Mahendra Liya
sumber
3

break akan menghentikan loop saat ini (atau meneruskan bilangan bulat untuk memberi tahu berapa banyak loop yang harus dilewati).

continue akan menghentikan iterasi saat ini dan memulai yang berikutnya.

alex
sumber
2

breakakan keluar dari loop, sementara continueakan segera memulai siklus loop berikutnya.

cspolton
sumber
2

Saya tidak menulis hal yang sama di sini. Hanya catatan changelog dari manual PHP.


Changelog untuk melanjutkan

Version Description

7.0.0 - continue outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   continue 0; is no longer valid. In previous versions it was interpreted the same as continue 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; continue $num;) as the numerical argument.

Changelog untuk istirahat

Version Description

7.0.0   break outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   break 0; is no longer valid. In previous versions it was interpreted the same as break 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; break $num;) as the numerical argument.
Muhammed Shihabudeen Labba A
sumber