freeCodeCamp/guide/portuguese/php/loops/for-loop/index.md

2.3 KiB
Raw Blame History

title localeTitle
For Loop Para loop

Para loop

O PHP for instrução consiste em três expressões e uma instrução:

for ((initialization); (condition); (final-expression)) statement

Descrição

  • inicialização
    • Corra antes da primeira execução no loop.
    • Esta expressão é comumente usada para criar contadores.
    • As variáveis criadas aqui estão no escopo do loop. Uma vez que o loop tenha terminado, a execução é destruída.
  • condição
    • Expressão que é verificada antes da execução de cada iteração.
    • Se omitido, esta expressão será avaliada como true .
  • expressão final
    • Expressão executada após cada iteração.
    • Geralmente usado para incrementar um contador.
    • Mas pode ser usado para executar qualquer expressão.
  • declaração
    • Código a ser repetido em cada iteração de loop.

Qualquer uma dessas três expressões ou a declaração pode ser omitida.

As expressões podem conter várias expressões separadas por vírgula.

Na expressão (condição), todas as expressões separadas por vírgulas serão avaliadas.

O resultado é obtido a partir do último.

For loops são comumente usados para contar um certo número de iterações para repetir uma instrução.

Armadilhas Comuns

Ultrapassando os limites de um array

Ao indexar em um array muitas vezes é fácil exceder os limites do array (ex. Tentar referenciar o 4º elemento de um array de 3 elementos).

// This will cause an error. 
 // The bounds of the array will be exceeded. 
 $arr = array(1,2,3); 
 
 for ($i = 0; $i <= count($arr); $i++) { 
    var_dump($arr[$i]); 
 } 

Isto irá produzir:

int(1) int(2) int(3) NULL 

Existem maneiras de corrigir esse código.

Defina a condição como $i < count($arr) ou $i <= count($arr) - 1 .

Problemas de desempenho

O código acima pode ficar lento, porque o tamanho da matriz é buscado em cada iteração.

Para corrigir esse problema, é possível colocar o tamanho da matriz em uma variável.

//create the $size variable with a second expression comma separated 
 for ($i = 0, $size = count($arr); $i < $size; ++$i) { 

Mais Informações