While
É uma estrutura de repetição que executa um comando até que uma determinada condição seja satisfeita, cada vez que este comando é executado é feito o que é chamado de loop, ou seja, há uma volta no laço, é uma maneira de se repetir um bloco de código sem ser necessário reescreve-lo, automatizando o processo de repetição, a estrutura básica do WHILE é a seguinte:
<?php
$x = 10;
while ( $x >= 0 ) { //Enquanto x for maior ou igual a zero
echo $x -- ; //sera diminuido 1 de x a cada laço.
}
?>
Assim como o if, o WHILE também tem uma sintaxe alternativa, confira:
<?php
$x=1;
while($x<5):
echo $x++;
endwhile;
?>
Do-while
Há uma alteração em relação a estrutura while, no DO WHILE a iteração é feita no início do script e não no final, o comando é executado antes de testar a condição. Desta forma use o DO WHILE se você precisa que o comando seja executado pelo menos uma vez, independente do retorno da condicional.
<?php
$x = 1;
do {
echo $x++; //este imprimiria 1
} while( $x < 1 )
?>
<?php
$x = 1;
while( $x < 1) {
echo $x ++ //este não imprimiria nada
}
?>
For
É um tipo de loop assim como o while e o do-while, tem suas peculiaridades e pode-se dizer que sua complexidade é um pouco maior que a dos outros, a sintaxe básica do for é a seguinte:
for( $atribuicao = 0 ; $condicional < = 0; $incremento++) {
echo comandos;
}
1° termo. A atribuição é caracterizada pela inicialização de uma variável qualquer, poderia ser por exemplo $x = 0.
2° termo. A condicional é avaliada se retornar verdadeiro o loop segue em frente, caso retorne falso, o loop é interrompido. Se o valor for vazio, se for omitido o segundo termo ou qualquer um dos 3 termos do for então ele será considerado sempre verdadeiro, a menos que seja usado um break, exemplo:
<?php
for( $x=0; ;$x++ ) {
if($x > 5) {
break;
}
echo $x;
}
?>
3° termo. O incremento, que pode ser uma operação matemática qualquer, é executado assim que a condicional é validada como true.
O for pode conter várias inicializações com variáveis diferentes, pode ter várias condicionais e vários incrementadores ou decrementadores, para isto basta que sejam separados por vírgula. Abaixo um exemplo demonstrando como calcular um fatorial com o uso de um for, através de uma função.
<?php
function fatorial($param) {
for ($c=$param, $fat=1; $c>0; $fat*=$c, $c--); /* o for é encerrado aqui, as chaves são necessárias apenas quando você deseja inserir instruções de comando no nosso caso precisamos apenas do valor de retorno */
return $fat;
}
print fatorial(6);
?>
Foreach
O foreach é um for especializado em arrays, e só pode ser utilizado desta forma, ele retornará um erro se o usuário informar um outro tipo de dado que não seja um array. Existem duas maneiras de usar o foreach, na maneira mais simples é informado a array e esta é copiada para uma outra array, na maneira mais complexa a array é copiada e juntamente com ela também são copiados os índices com seus respectivos valores.
<?php
foreach( $array as $value) {
echo $value; //retornará todos os valores contidos no array.
}
foreach( $_SERVER as $key => $value) {
echo "$key => $value <br />"; /* retornará o array e os índices do array neste exemplo serão retornadas todas as variáveis de ambiente do php */
}
?>
A cláusula as irá copiar o conteúdo de $_SERVER para $value. O foreach é sem dúvida um excelente recurso no trato com arrays.