Eu tenho um loop foreach e uma declaração if. Se uma correspondência for encontrada, eu preciso sair do 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
fonte
fonte
Respostas:
if
não é uma estrutura de loop, então você não pode "sair dela".Você pode, no entanto, sair do processo
foreach
simplesmente ligandobreak
. No seu exemplo, ele tem o efeito desejado:Apenas pela integridade de outras pessoas que se deparam com essa pergunta em busca de uma resposta.
break
aceita um argumento opcional, que define quantas estruturas de loop devem ser quebradas. Exemplo:Resultado resultante:
fonte
switch($a) { case 'x': switch($b) { case 'x': break 2; }; break; }
asbreak 2
instruções internas das duas folhas.Basta usar
break
. Isso fará isso.fonte
if ($abort_if_block) break;
eu havia originalmente estabelecidobreak 2
e falhou. obrigado #A maneira mais segura para aproximar a quebra de um
foreach
ouwhile
circuito em PHP é aninhar uma variável do contador de incrementação eif
dentro condicional do ciclo inicial. Isso permite um controle mais rígido dobreak;
que pode causar estragos em outros lugares de uma página complicada.Exemplo:
fonte
endwhile
declaração, você precisa escreverwhile (..): ...; endwhile;
- observe os dois pontos aqui depoiswhile
!Para aqueles que estão chegando aqui, mas pesquisando como interromper um loop que contém uma instrução include, use return em vez de interromper ou continuar.
Se você quiser quebrar quando estiver dentro do_this_for_even.php, precisará usar return. Usar interromper ou continuar retornará este erro: Não é possível interromper / continuar 1 nível. Encontrei mais detalhes aqui
fonte