Há quatro estruturas de loop em PHP. Estes são usados para executar um bloco de código específico várias vezes. Assim como a condicional if, as chaves para os laços podem ser deixado de fora, se houver apenas uma instrução no bloco de código.
Loop While
O loop while é executado através do bloco de código somente se sua condição for verdadeira, e continuará em loop enquanto a condição permanecer verdadeira. Note que a condição só é verificada no início de cada iteração (loop).
<?php
$i = 0;
while ($i < 10){
echo $i++; // 0123456789
}
?>Loop do-while
O loop do-while funciona da mesma forma que o loop while, exceto que ele verifica a condição após o bloco de código. Será, portanto, sempre executado através do bloco de código, pelo menos uma vez. Tenha em mente que este ciclo termina com um ponto e vírgula.
<?php
$i = 0;
do {
echo $i++;
}while ($i < 10); // 0123456789
?>Loop for
O loop for é usado para passar por um bloco de código um número específico de vezes. Ele usa três parâmetros. O primeiro parâmetro é inicializado um contador e é sempre executada uma só vez, antes do laço. O segundo parâmetro detém a condição para o loop e é verificado antes de cada iteração. O terceiro parâmetro contém o incremento do contador e é executado no final de cada iteração.
<?php
for ($i = 0; $i < 10; $i++){
echo $i;
} // Resultado: 0123456789
?>O laço for tem diversas variações desde qualquer um dos parâmetros podem ser deixados de fora. Por exemplo, se os primeiros e terceiros parâmetros são deixados de fora que se comporta da mesma maneira que o loop.
<?php
for (;$i < 10;) {
echo $i++;
} //Resultado: 123456789
?>O primeiro e o terceiro parâmetros também podem ser divididos em várias declarações usando o operador vírgula (,).
<?php
for ($i = 0, $x = 9 ; $i < 10 ; $i++, $x--) {
echo $x; // 9-0
}
?>A função sizeof recupera o número de elementos de uma matriz. Juntamente com o loop for, pode ser usado para percorrer uma matriz numérica.
<?php
$a = array(1,2,3);
for($i = 0; $i < sizeof($a); $i++) {
echo $a[$i];
} // Resultado: 123
?>Se não há necessidade de manter o controle de iterações do loop foreach fornece uma sintaxe mais limpa. Este ciclo é também necessária para atravessar arrays associativos.
Loop Foreach
O loop foreach oferece uma maneira fácil para percorrer arrays. A cada iteração o próximo elemento na matriz é atribuído a variável especificada (iterador) eo loop continua a executar até que passou por toda a matriz.
<?php
$a = array (1,2,3);
foreach ($a as $v) {
echo $v; // "123"
}
?>Existe uma extensão do loop foreach para obter também o nome ou índice da chave, adicionando uma chave na variável, seguido pelo operador seta dupla (=>) antes do iterador
<?php
$a = array ('one' => 1, 'two' => 2, 'three' => 3);
foreach ($a as $k => $v) {
echo "$k => $v <br>";
}
/* Resultado
one => 1
two => 2
three => 3
*/
?>Alternativa de Sintaxe
Tal como acontece com declarações condicionais, os colchetes nas laçadas pode ser reescrita na sintaxe alternativa com dois pontos e um dos endwhile, endfor ou endforeach.
<?php while ($i < 10): echo $i++; endwhile; for ($i = 0; $i < 10; $i++): echo $i; endfor; foreach ($a as $v): echo $v; endforeach; ?>
O principal benefício disso é melhorar a legibilidade, especialmente para laços mais longos.
Break
Há duas palavras-chave especiais que podem ser usados dentro de loops – break e continue. A palavra-chave break termina a execução de uma estrutura de loop.
<?php
for (;;) { break; } // endfor
?>Ele pode ser dado um argumento numérico que especifica quantas estruturas de loop aninhado para fugir.
<?php
$i = 0;
while ($i++ < 10)
{
for (;;) { break 2; } // fim do for e volta ao while
}
?>Continue
A palavra-chave continue pode ser usado dentro de qualquer declaração looping para pular o resto do loop atual e continuar no início da próxima iteração.
<?php
while ($i++ < 10){
continue;
} // Começa a próxima interação
?>Esta palavra-chave pode aceitar um argumento para quantos loops aninhados ele deve saltar até o fim.
<?php
$i = 0;
while ($i++ < 10)
{
for (;;) { continue 2; } // começa a próxima iteração while
}
?>Em contraste com muitas outras linguagens, a instrução continue também se aplica a switche’s, onde ele se comporta do mesmo que break. Portanto, para pular uma iteração de dentro de uma switch use dois continue devem ser utilizados.
<?php
$i = 0;
while ($i++ < 10)
{
switch ($i)
{
case 1: continue 2; // começar na próxima iteração while
}
}
?>Ir Para (GoTo)
Uma declaração foi introduzida no PHP 5.3 é Goto, que realiza um salto para um rótulo especificado. Um rótulo é um nome seguido por dois pontos (:).
<?php
goto myLabel; // pular para o myLabel
myLabel: // declaração de myLabel
?>O rótulo de destino deve ser dentro do mesmo arquivo de script e escopo. Portanto, goto não pode ser usado para saltar para as estruturas de loop, só fora delas.
<?php
loop:
while (!$finished)
{
// ...
if ($try_again) goto loop; // recomeçar loop
}
?>Em geral, a instrução goto é recomendável evitar, uma vez que tende a tornar o fluxo de execução difícil de seguir ou entender.
Links de Referência
http://www.php.net/manual/pt_BR/language.control-structures.php
Bom é isso alguns detalhes sobre loops no PHP, lembrando que esse é um pequeno guia de referência para estudos!












