O for Além Do for – PHP

Categorias: desenvolvimento, php

Salve pessoal!

O Post que trago hoje trata de algo bem simples mas que pode não ser muito comum para algumas pessoas.
São usos não muito populares de um de nossos laços de repetição, o FOR.

Quando estamos aprendendo uma linguagem, bem no início, os manuais parecem mais nos confundir do que ajudar.
O que fazemos ?? Saímos em busca de uma comunicação mais direta em Blogs ou Sites.

Essas fontes resolvem nosso problema mais podem acabar deixando alguns vácuos quando se trata de estruturas básicas, como é o caso do FOR.

E sobre o FOR eu te pergunto o seguinte:
Você sabia que os parâmetros passados para ele são opcionais ??
Você sabia que pode passar quantas variáveis quiser para os parâmetros ??

Se já sabe maravilha, caso não, vamos ver como isso funciona.

Nesse primeiro exemplo temos nosso FOR comum, como todos aprendemos:

<?php

        for($i = 0; $i < 5; $i++)
        {
                echo $i;
                echo '<br />';
        }

Nesse segundo exemplo, retiramos o primeiro parâmetro do FOR, e deixamos a variável $i definida fora do laço:
Repare que o resultado que vai sair na tela, vai ser o mesmo do exemplo anterior.

<?php

        $i = 0;

        for(; $i < 5; $i++)
        {
                echo $i;
                echo '<br />';
        }

Agora, vmaos tirar o terceiro parâmetro, e incrementar a variável dentro do laço.

<?php

        $i = 0;

        for(; $i < 5;)
        {
                echo $i;
                echo '<br />';
                $i++;
        }

Por último, vamos retirar o segundo parâmetro.

<?php

        $i = 0;

        for(; ; )
        {
                echo $i;
                echo '<br />';

                if($i == 5)
                {
                        break;
                }

                $i++;
        }

Repare que em todos esses exemplos acima, fugimos do Loop infinito com alguma condição ou mecanismo que colocamos dentro do laço. Tome cuidado. Esse último exemplo se não for feito nada dentro do laço, gera facilmente um Loop infinito.

Outra opção que temos é usar mais de uma variável para cada parâmetro.
Confira:

<?php

        $w = 2;

        for($i = 1, $j = 9; $j > 0; $j - $i, $w*=2)
        {
                echo $w;
                echo '<br />';
        }

Vamos analisar o exemplo acima.
Definimos para o loop a variável $i e a variável $j.
O segundo parâmetro, que define até quando nosso loop vai rodar, nos mostra que será enquanto $j for maior que zero.
E no último parâmetro, definimos que a cada volta $j vai diminuir o valor de $i, e que $w, que é uma variável que está definida fora do loop, será multiplicada por 2.
Dentro do loop, pedimos para exibir $w.
Faça o teste. Confira a saída.

Com esses exemplos acredito que já conseguimos absorver mais usos do que aquele que estamos acostumados do FOR. Todos eles são tratados na documentação e também tem uns exemplos bem bacanas nos comentários dela que valem a pena olhar.

E aí você me pergunta… “E um uso prático disso?? Uma situação real ??”

De cara assim não consigo dar uma resposta, um exemplo.
Mas com isso eu lembro de uma entrevista que um dos melhores guitarristas do mundo, Yngwie Malmsteen, deu há alguns anos para a Guitar Player americana. Ele disse:
“As pessoas falam que eu sou muito técnico e etc. Mas eu preciso conhecer a técnica para fazer virar música. Assim como um escritor deve conhecer várias palavras para escrever um livro…”

Pense nisso!
Devemos conhecer as possibilidades que a linguagem nos dá, e assim ficamos preparados para montar as lógicas que cruzarem nosso caminho.

Grande Abraço!


Comments