|
Também chamados de condicionais,
os comandos de seleção permitem
executar comandos ou blocos de comandos
com base em testes feitos durante a execução.
if
O mais trivial dos comandos condicionais
é o if. Ele testa a condição
e executa o comando indicado, se o resultado
for true (valor diferente de zero).
Este comando possui duas sintaxes:
if (condição)
comando;
if (condição):
comando;
. . .
comando;
endif;
Para incluir mais do que um comando no
if da primeira sintaxe, é preciso
utilizar um bloco, demarcado por chaves.
O else é um complemento opcional
para o if. Se utilizado, o comando será
executado se a expressão retornar
o valor false (zero).
Suas duas sintaxes são:
if (expressão)
comando;
else
comando;
if (expressão):
comando;
. . .
comando;
else
comando;
. . .
comando;
endif;
A seguir, temos um exemplo do comando if
utilizado com else:
if ($a > $b)
$maior = $a;
else
$maior = $b;
O exemplo acima coloca em $maior o maior
valor entre $a e $b
Em determinadas situações
é necessário fazer mais do
que um teste, e executar condicionalmente
diversos comandos ou blocos de comandos.
Para facilitar o entendimento de uma estrutura
do tipo:
if (expressao1)
comando1;
else
if (expressao2)
comando2;
else
if (expressao3)
comando3;
else
comando4;
foi criado o comando, também opcional
elseif. Ele tem a mesma função
de um else e um if usados sequencialmente,
como no exemplo acima. Num mesmo if podem
ser utilizados diversos elseif's, ficando
essa utilização a critério
do programador, que deve cuidar a legibilidade
do seu script.
O comando elseif também pode ser
utilizado com dois tipos de sintaxe. Em
resumo, a sintaxe geral do comando if fica
das seguintes maneiras:
if (expressao1)
comando;
[ elseif (expressao2)
comando; ]
[ else
comando; ]
if (expressao1) :
comando;
. . .
comando;
[ elseif (expressao2)
comando;
. . .
comando; ]
[ else
comando;
. . .
comando; ]
endif;
switch
O comando switch actua de maneira semelhante
a uma série de comandos if na mesma
expressão. Frequentemente o programador
pode querer comparar uma variável
com diversos valores, e executar um código
diferente a depender de qual valor é
igual ao da variável. Quando isso
for necessário, deve-se usar o comando
switch. O exemplo seguinte mostra dois trechos
de código que fazem a mesma coisa,
sendo que o primeiro utiliza uma série
de if's e o segundo utiliza switch:
if ($i == 0)
print "i é igual a zero";
elseif ($i == 1)
print "i é igual a um";
elseif ($i == 2)
print "i é igual a dois";
switch ($i) {
case 0:
print "i é igual a zero";
break;
case 1:
print "i é igual a um";
break;
case 2:
print "i é igual a dois";
break;
}
É importante compreender o funcionamento
do switch para não cometer erros.
O comando switch testa linha a linha os
cases encontrados, e a partir do momento
que encontra um valor igual ao da variável
testada, passa a executar todos os comandos
seguintes, mesmo os que fazem parte de outro
teste, até o fim do bloco. por isso
usa-se o comando break, quebrando o fluxo
e fazendo com que o código seja executado
da maneira desejada. Veremos mais sobre
o break mais a frente. Veja o exemplo:
switch ($i) {
case 0:
print "i é igual a zero";
case 1:
print "i é igual a um";
case 2:
print "i é igual a dois";
}
No exemplo acima, se $i for igual a zero,
os três comandos "print"
serão executados. Se $i for igual
a 1, os dois últimos "print"
serão executados. O comando só
funcionará da maneira desejada se
$i for igual a 2.
Em outras linguagens que implementam o comando
switch, ou similar, os valores a serem testados
só podem ser do tipo inteiro. Em
PHP é permitido usar valores do tipo
string como elementos de teste do comando
switch. O exemplo abaixo funciona perfeitamente:
switch ($s) {
case "casa":
print "A casa é amarela";
case "arvore":
print "a árvore é bonita";
case "lampada":
print "joao apagou a lampada";
}
|