PHP é uma linguagem muito dinâmica e activa e conta com inúmeras ferramentas e técnicas internas que permitem alcançar o produto final desejado pelos programadores. Para dar algum poder e facilidade aos seus scripts, PHP conta com um determinado número de declarações condicionais, loops e outras estruturas de controlo que permitem manipular dados facilmente ao longo do código. Estas 16 Estruturas de Controlo em PHP irão estar divididas em 2 artigos, pelo que nesta primeira parte iremos abordar as primeiras 8 das 16 seguintes:
- if
- else
- elseif/else if
- while
- do-while
- for
- foreach
- break
- continue
- switch
- return
- require
- include
- require_once
- include_once
- goto

Não perca os nossos conteúdos anteriores relacionados com PHP. Se está a iniciar na linguagem, recomendamos fortemente a leitura dos nossos artigos:
- Diversos Truques e Dicas para PHP
- Como funciona o PHP?
- Javascript para desenvolvedores PHP
- 75+ Ferramentas PHP extremamente úteis
- 10 dicas para se tornar um melhor programador PHP
- Comentários e Operadores em PHP
- Variáveis e Tipos de Dados em PHP (Parte I)
- Variáveis e Tipos de Dados em PHP (Parte II)
- Como enviar Dados para o Browser com PHP
Neste artigo vamos-lhe explicar 16 Estruturas de Controlo em PHP. Será divido em duas partes, pelo que se não quiser perder a continuação deste artigo poderá subscrever o seu e-mail e receber este e outros conteúdos directamente na sua caixa de e-mail!
1. IF
O if é a estrutura de controlo mais básica existente no PHP. Define um bloco de código entre chavetas “{}” que é executado apenas se uma condição for correspondida:
<?php
$var = 10;
if ($var < 20 ) {
echo "A condição foi correspondida";
}
?>
Com este trecho de código, nada irá ser apresentado a não ser que a variável $var seja inferior a 20. Em alguns casos, este é um resultado não aceitável, pelo que necessitará de utilizar o Else para adicionar uma alternativa quando a condição não for correspondida.
2. ELSE
Utilize o Else quando quer introduzir uma alternativa ao If, caso este não correponda à condição:
<?php
$var = 10;
if ($var < 20 ) {
echo "A condição foi correspondida";
}else {
echo "A condição não foi correspondida";
}
?>
Se depois disto não quiser passar logo para o else, poderá introduzir um else if
3. ELSE IF
Um else if é utilizando entre o if e o else. Se no seu código você quiser introduzir mais uma condição antes do else, introduza o else if. O else if só é executado caso a condição inserida no if seja correspondida, caso contrário salta para o Else.
<?php
$idade = 24;
if ($idade < 16) {
echo "Não tem idade suficiente para comprar bebidas alcoólicas";
}else if ($idade < 18) {
echo "Não tem idade suficiente para conduzir";
}else {
echo "Tem idade suficiente para comprar bebidas alcoólicas e conduzir";
}
?>
4. WHILE
O While é um loop que permite repetir um trecho de código enquanto uma condição for verdadeira. Isto permite-lhe criar ciclos pelos dados sem necessitar de saber quantos existem. No seguinte exemplo utilizamos uma variável $x que guarda a contagem, aumentando o seu valor no fim de cada ciclo. Este incremento automático foi explicado no artigo anterior Comentários e Operadores em PHP. Quando o contador chegar ao valor determinado na condição, pára.
$x = 0;
while ($x<10) {
echo "A Contagem está em $x";
++$x;
}
O output deste trecho de código iria ser “A contagem está em X” em que X é o valor da variável $x até chegar a 10.
5. DO WHILE
O Do While é utilizado quando necessita de executar o código pelo menos uma vez, e continuar a executar se a condição for correspondida:
$x = 10;
do {
echo "A Contagm está em $x.\n";
++$x;
} while ($x < 5);
Este código vai dar o ouput “A Contagem está em 10″ apesar de $x não corresponder à condição. Por isso executa uma vez, e não continua a executar. Caso o $x fosse 0, continuaria a executar até este chegar a 5.
6. FOR
Uma das declarações mais versáteis na programação PHP é o loop for, que aceita três expressões: a primeira expressão é avaliada uma vez no inicio do loop, a segunda expressão é avaliada no inicio de cada repetição do loop, e o loop continua apenas se a expressão for verdadeira, e a terceira expressão é avaliada no final de cada repetição do loop. Cada expressão pode ter mais de um segmento, separados por virgulas, enquanto que as expressões são separadas por ponto e virgula.
for ($x; $x<3; ++$x) {
echo "A contagem está em $x.\n";
}
O Output será “A contagem está em X” em que X é o valor da variável $x até esta chegar ao valor 3.
Poderá utilizar o for também para criar um loop que vai buscar os valores dentro de um array:
$cafes = array("café1", "café2", "café 3", "café 4", "café 5");
for ($x=0, $n=count($cafes); $x<$n; ++$x) {
echo $cafes[$x], "<br />";
}
7. FOREACH
O loop foreach fornece aos desenvolvedores uma opção poderosa para lidar com arrays. Utilizando o exemplo citado acima, com os cafés, vamos converter para a utilização do foreach:
$cafes = array("café1", "café2", "café 3", "café 4", "café 5");
foreach ($cafes as $cafe) {
echo $cafe, "<br />";
}
Ao ler este pedaço de código, rapidamente se percebe o que ele faz: Para cada (for each) café dentro da variável $cafes, ele escreve dentro da variavel $cafe e da o output. Irá fazer este processo até ao último registo do array.
8. BREAK
Em qualquer loop, a declaração break dá uma ordem para terminar. No caso de loops encadeados, um argumento numérico pode ser introduzido para terminar a declaração após X loops. No seguinte exemplo, a declaração irá terminar antes do suposto, pois foi dada essa ordem através de break.
while ($x<10) {
if ($x == 6) {
break;
}
}
foreach($valores as $val) {
switch ($val) {
case 'bad_value';
break 2; //aqui sai do switch e do foreach
case 'good_value';
// aqui introduzia-se algo
}
]
Na parte II deste artigo iremos cobrir as restantes 8 Estruturas de Controlo, não perca!
Abraço e até já!























Jose
Amo este blgo pelo php!
So isso!
Jose Correia
Porque e que o Paulo Fastino nunca mais escreveu mensagens neste blog?
Jose Correia
Sabes Diogo,
As vezes gostava de ser como tu (o mestre do php), o que venho aqui perguntar te é em que sites e fóruns aprendeste php desde o inicio ao avançado e uma pergunta é se sabes todas as funções do php?
jorge filho
estou fazendo um curso básico com php, esse tutorial está maravilhoso, e muito simples de se entender. parabéns!