(PHP 4, PHP 5)
continue é utilizado em estruturas de loop para pular o resto da iteração atual do loop e continuar a execução com a condição de valores e e iniciar a próxima iteração.
Nota: Note que no PHP o switch é considerado uma estrutura de loop para os propósitos do continue.
continue aceita um argumento numérico opcional que diz quantos níves loops aninhados ele deve pular ao final. O valor padrão é 1, indo assim para o final do loop atual.
<?php
while (list($key, $value) = each($arr)) {
if (!($key % 2)) { // skip odd members
continue;
}
do_something_odd($value);
}
$i = 0;
while ($i++ < 5) {
echo "Outer<br />\n";
while (1) {
echo "Middle<br />\n";
while (1) {
echo "Inner<br />\n";
continue 3;
}
echo "This never gets output.<br />\n";
}
echo "Neither does this.<br />\n";
}
?>
Omitir o ponto e vírgula depois continue pode causar confusão. Abaixo está um exemplo do que você não deve fazer.
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>
O resultado esperado poderia ser:
0 1 3 4
mas em versões do PHP abaixo da 5.4.0, esse script irá resultar em:
2
porque todo o código continue print "$i\n"; é interpretado como uma só expressão, então o print é chamado somente quando $i == 2 é verdadeiro. (O retorno do print é passado como argumento para o continue.)
Nota:
A partir do PHP 5.4.0, o exemplo acima irá causar um erro do tipo
E_COMPILE_ERROR
.
Versão | Descrição |
---|---|
5.4.0 | continue 0; não é mais válido. Em versões anteriores era interpretado como continue 1;. |
5.4.0 | Remmovida a possibilidade de passar variáveis como argumento (ex., $num = 2; continue $num;). |