Saya memiliki foreach loop dan pernyataan if. Jika kecocokan ditemukan saya harus akhirnya keluar dari foreach.
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;
<break out of if and foreach here>
}
}
php
if-statement
foreach
break
au_stan
sumber
sumber
Jawaban:
if
bukan struktur loop, jadi Anda tidak bisa "keluar darinya".Anda dapat, bagaimanapun, keluar dari
foreach
hanya dengan meneleponbreak
. Dalam contoh Anda ini memiliki efek yang diinginkan:Hanya untuk kelengkapan untuk orang lain yang menemukan pertanyaan ini mencari jawaban ..
break
mengambil argumen opsional, yang menentukan berapa banyak struktur loop yang harus dihancurkan. Contoh:Output yang dihasilkan:
sumber
switch($a) { case 'x': switch($b) { case 'x': break 2; }; break; }
bagian dalambreak 2
daun kedua pernyataan switch.Cukup gunakan
break
. Itu akan melakukannya.sumber
if ($abort_if_block) break;
telah saya atur sebelumnyabreak 2
dan gagal. terima kasihCara yang lebih aman untuk mendekati break a
foreach
atauwhile
loop dalam PHP adalah dengan menumpuk variabel counter yang bertambah danif
bersyarat di dalam loop asli. Ini memberi Anda kontrol yang lebih ketat daripadabreak;
yang dapat menyebabkan kekacauan di tempat lain pada halaman yang rumit.Contoh:
sumber
endwhile
pernyataan itu, Anda perlu menuliswhile (..): ...; endwhile;
- perhatikan titik dua di sini setelahwhile
!Bagi Anda yang mendarat di sini tetapi mencari cara keluar dari loop yang berisi pernyataan penggunaan sertakan gunakan alih-alih istirahat atau melanjutkan.
Jika Anda ingin istirahat ketika berada di dalam do_this_for_even.php Anda harus menggunakan return. Menggunakan break atau melanjutkan akan mengembalikan kesalahan ini: Tidak dapat menembus / melanjutkan 1 level. Saya menemukan detail lebih lanjut di sini
sumber