Ir para o conteúdo

Estruturas de controlo

If - Else - Elseif

A estrutura de controlo if é muito importante em qualquer linguagem de programação, pois permite fazer verificações de condições e consequentemente só executar alguns blocos de instruções.

if (expressao) {

  instrucoes;

}

else {

  instrucoes;

}

Se pretende testar várias condições seguidas pode usar um conjunto de ifs encadeados.

if (expressao) {
  instrucoes;
}
else
  if { // Ou entao elseif e identico
    instrucoes;
  }
  else {
    instrucoes;
  }

Exemplo:

<html>
<head>
<title>ex02</title>
</head>
<body>
<?php
$d=date("D");
if ($d=="Fri")
  echo "Bom fim de semana.";
else
  if ($d=="Mon")
    echo "Um bom inicio de uma semana de trabalho! ";
  else
    echo "Um bom dia.";
?>
</body>
</html>

Também existe uma forma reduzida do if, que tem a seguinte sintaxe:

condição ? valor-se-verdadeiro : valor-se-falso

Tomando um exemplo, de uma pequena frase para nos indicar se o ano actual representa ou não um número par.

$ano = date("Y");

echo "Este ano representa um número ".(($ano % 2) == 0 ? "par" : "ímpar")."!";

Switch

A estrutura de controlo switch permite fazer várias verificações que poderiam ser feitas por N ifs encadeados, mas assim torna-se muito mais simples.

switch (expressao) {
  case valor1:
    instrucoes;
    [[php:break]]
  case valor2:
    instrucoes;
    [[php:break]]
  [[:default|   instrucoes;]]
}

Exemplo:

<?php
$d=date("D");
switch ($d) {
  case "Fri":
    echo "Bom fim de semana.";
    break;
  case "Mon":
    echo "Um bom inicio de uma semana de trabalho!";
    break;
  default:
    echo "Um bom dia."; 
}
?>

While

Dentro das construções de PHP de ciclos esta é sem dúvida a mais simples. Executa o bloco de instruções enquanto a expressão for TRUE. Caso seja FALSE logo de início, nem sequer chega a executar as instruções. Nesse caso devera ser usado um ciclo do-while, que iremos ver de seguida.

while (expressao)
  instrucoes;

Exemplo:

<?php
$cont=1;
while ($cont<=5) {
  echo $cont."";
  ++$cont;
}
?>

Output: 1 2 3 4 5

Do-While

O ciclo do-while é similar ao while excepto que quando testa a expressão é no fim do ciclo e não no início.

do instrucoes
while (expressao);

Exemplo:

<?php
$cont=2;
do {
  echo $cont;
  ++$cont;
} while ($cont>20);
?>

Output:

2

Apenas mostra uma linha devido à expressão retornar FALSE. Se fosse um ciclo while em vez de um do-while, não mostrava uma única linha.

For

O ciclo mais complexo em PHP, sendo a sintaxe a seguinte:

for (expressao inicial; expressao condicional; expressao final)
  instrucoes;

expressão inicial é executada apenas uma vez (normalmente usada para inicializar variáveis); expressão condicional é analisada a cada iteração (se é FALSE, o ciclo termina, caso contrário continua); expressão final é executada no fim de cada iteração.

Exemplo (o output será igual ao output da secção while só que desta vez é usado o for):

<?php
for ($cont=1;$cont<=5;++$cont)
  echo $cont."";
?>

Output:

1 2 3 4 5

Nota: Se quiser incluir mais de uma instrução basta estarem entre chavetas, também é possível dentro de cada expressão ter várias instruções desde que separadas por vírgula.

Ex:

for ($cont=1;$cont<=5;++$cont,++$cont,--$cont) // Faz exactamente o mesmo

Break e Continue

A maneira mais comum de sair fora de um ciclo é a expressão tornar-se FALSE, os comandos break e continue possibilitam outra opção.

break

Termina a execução de um ciclo.

<?php
$cont=1;
while ($cont<=5) {
  echo $cont.""; 
  ++$cont;
  if ($cont==3)
    break;
}
?>

Output:

1 2

continue

Salta o resto das instruções que a iteração actual que o contêm, e continua a execução na expressão condicional.

<?php
$cont=0;
while ($cont<5) {
  ++$cont;
  if ($cont==3)
    continue;
  echo $cont." ";
}
?>

Output: 1 2 4 5