if
não é uma estrutura de loop, então você não pode "sair dela".
Você pode, no entanto, sair do processo foreach
simplesmente ligando break
. No seu exemplo, ele tem o efeito desejado:
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;
// will leave the foreach loop and also the if statement
break;
}
this_command_is_not_executed_after_a_match_is_found();
}
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:
foreach (array('1','2','3') as $a) {
echo "$a ";
foreach (array('3','2','1') as $b) {
echo "$b ";
if ($a == $b) {
break 2; // this will break both foreach loops
}
}
echo ". "; // never reached
}
echo "!";
Resultado resultante:
1 3 2 1!