Laço for em PHP

Laço for em PHP – Aula 19

Laços for em PHP são os mais complexos da linguagem. Você pode controlar suas ações baseando-se em três expressões: um valor inicial (opcional); uma expressão condicional (opcional); uma terceira expressão (opcional), que, normalmente, altera o valor inicial.

A primeira expressão é executada uma vez, sem condição alguma, no começo do laço. Com isso, você pode criar uma variável e dar um valor para ela utilizando essa expressão, por exemplo.

Na expressão acima, a $variavel agora tem valor 1.

A segunda expressão deverá retornar um valor verdadeiro (true) para que o laço seja executado, caso retorne um valor falso (false), o laço termina. Veja abaixo um exemplo de condição que retorna um valor verdadeiro e utiliza o valor da primeira expressão.

Perceba que a expressão 2 avalia se $variavel (da expressão 1) é menor do que 10 ($variavel < 10). A cada volta do laço essa expressão será avaliada para que o interpretador do PHP saiba quando parar o laço. Por esse motivo, precisamos alterar o valor de $variavel para que, em algum momento, a expressão seja avaliada como falsa (false). Se não fizermos isso teremos um loop infinito.

A terceira expressão é executada incondicionalmente a cada volta do laço, com isso podemos alterar o valor da primeira expressão utilizando-a.

Perceba acima que utilizando apenas o laço for, consigo criar uma variável, avaliar o valor dessa variável e alterar seu valor caso necessário. Como no trecho anterior, que criei a $variavel com valor 1, verifiquei se o valor da variável é menor do que 10 ($variavel < 10) e somei mais um ($variavel++) na variável a cada volta do laço.

Resumo das expressões de for em PHP

Só para recapitular de uma maneira mais compacta e resumida, vejamos o que cada expressão faz:

  • Expressão 1: É executada apenas uma vez no início do laço;
  • Expressão 2: Deve retornar um valor boolean verdadeiro (true) para que o laço continue; É executada a cada volta do laço;
  • Expressão 3: É executada a cada volta do laço.

Cada expressão pode estar vazia ou separada por vírgula, porém, o resultado é capturado da última parte. Para a expressão dois, ao contrário do que se imagina, um valor verdadeiro (true) é retornado quando ela estiver vazia.

Isso significa que o trecho de código abaixo está correto:

Perceba que a palavra break (significa pausa em inglês), para o laço. Por isso, tive que utilizar uma estrutura condicional if para analisar minha expressão (o mesmo que a expressão 2 do for faz) e executar o "break".

For com arrays

For também pode ser utilizado para percorrer arrays, porém, você vai precisar utilizar a função count do PHP para saber quantos itens existem nesse array, veja:

Perceba que no trecho acima criei um array simples com 3 valores. Na expressão 1 do laço for, criei uma variável $i com valor 0, na expressão 2 verifiquei se o valor de $i é menor que o número de itens do meu array, na expressão 3, somei mais um (+1) em $i.

O valor de $i terá o seguinte caminho nesse caso:

  • 0: na primeira volta do laço (quando o valor foi criado);
  • 1: na segunda volta do laço
  • 2: na terceira volta do laço
  • Quando o valor for 3, a segunda expressão será avaliada como falsa e o laço para.

Ou seja, o trecho acima seria o mesmo que o trecho abaixo (se não houvesse o for):

Como temos apenas poucos valores e poucas ações, não faz muita diferença se eu utilizar for ou escrever o código manualmente, porém, imagine o mesmo array com milhares de valores e várias ações dentro do laço! Seria bem inconveniente ter que escrever tudo manualmente.

Outra sintaxe para for

For também pode ser escrito da seguinte maneira:

Trocar as chaves { e } por dois pontos (:) e a palavra chave endfor; não faz diferença alguma, você pode utilizar a forma que preferir para escrever.

Aulas anteriores

Veja todas as aulas, e mais, na categoria Curso de PHP do Tutsup.



 

Comentários