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 if
s 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 if
s 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