Controlo do fluxo em PHP: Condições IF

Apresentamos uma das ferramentas principais utilizadas para controlar o fluxo dos nossos scripts: Os condicionais IF.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 18/7/04
Valorize este artigo:
A programação exige em muitas ocasiões a repetição de acções sucessivas ou a escolha de uma determinada sequência e não de outra dependendo das condições especificas da execução.

Como exemplo, podíamos fazer alusão a um script que execute uma sequência diferente em função do dia da semana no que nos encontramos.

Este tipo de acções podem ser levadas a cabo graças a um conjunto de instruções presentes na maioria das linguagens. Neste capítulo vamos descrever algumas delas propostas por PHP e que tem uma utilidade evidente.

Para evitar complicar o texto, vamos limitar-nos a introduzir as mais importantes deixando de lado outras que poderão ser facilmente assimiláveis a partir de exemplos práticos.

As condições if
Quando queremos que o programa, chegado um certo ponto, tome um caminho concreto em determinados casos e outro diferente se as condições de execução diferem, partimos do conjunto de instruções if, else e elseif. A estrutura de base para este tipo de instruções é a seguinte:

if (condição)
{
   Instrução 1;
   Instrução 2;
   ...
}
else
{
   Instrução A;
   Instrução B;
   ...
}


Chegados a este ponto, o programa verificará o cumprimento ou não da condição. Se a condição é certa as instruções 1 e 2 serão executadas. Do contrario (else), as instruções A y B serão levadas a cabo.

Esta estrutura de base pode complicar-se um pouco mais se tivermos em conta que nem tudo é necessariamente preto no brano e que existem muita possibilidades. É por isso que outras condições se podem questionar dentro de uma condição principal. Falamos pois de condições aninhadas que teriam uma estrutura do seguinte tipo:

if (condição1)
{
   Instrução 1;
   Instrução 2;
   ...
}
else
{
   if (condição2)
   {
      Instrução A;
      Instrução B;
      ...
   }
   else
   {
      Instrução X
      ...
   }
}


Deste modo, poderíamos introduzir o número de condições que quisermos dentro de uma condição principal.

É de grande ajuda a instrução elseif que nos permite numa só linha introduzir uma condição adicional. Este tipo de instrução simplifica ligeiramente a sintaxe que acabámos de ver.

if (condição1)
{
   Instrução 1;
   Instrução 2;
   ...
}
elseif (condição2)
{
   Instrução A;
   Instrução B;
   ...
}
else
{
   Instrução X
   ...
}


O uso desta ferramenta é claro com um pouco de prática. Utilizemos um exemplo simples de utilização de condições. O seguinte programa permitiria detectar a língua empregue pelo navegador e visualizar uma mensagem nessa língua.

<HTML>
<HEAD>
<TITLE>Detector de Lingua</TITLE>
</HEAD>
<BODY>
<?
//Antes de nada introduzimos mensagens em forma de variáveis
$portugues="Ola";
$ingles="Hello";
$frances="Bonjour";

//Agora lemos do navegador qual é a sua língua oficial
$idioma=substr($HTTP_ACCEPT_LANGUAGE,0,2);

//Formulamos as possibilidades que se podem dar
if ($idioma == "pt")
   {echo "$portugues";}
elseif ($idioma=="fr")
   {echo "$frances";}
else
   {echo "$ingles";}
?>
</BODY>
</HTML>


Executar script

Para poder ver o funcionamento deste script é necessário mudar o idioma preferido o qual pode ser realizado a partir do menu de opções do navegador.

Para ler a língua aceite pelo navegador o que fazemos é definir uma variável ($idioma) e, mediante a função subst, recolhemos as duas primeiras letras do código correspondente ao idioma aceitado pelo navegador ($HTTP_ACCEPT_LANGUAGE).

A terceira parte do script encarrega-se de ver se o navegador está em português (pt), francês (fr) ou em qualquer outro idioma que não seja nenhum destes dois e de imprimir a mensagem que proceda em cada caso.

Temos de destacar que, quando se trata de comparar variáveis, pomos um duplo igual "==" em lugar de um simples "=". Este último fica reservado exclusivamente para atribuir valores às variáveis.





Comentários do artigo
Foram enviados 3 comentários ao artigo
3 comentários revisados:
Por: silverio
27/12/07
Preciso adicionar um elseif para que se a o valor da variavel $classe seje 64 ou 65 ele exiba um echo diferente dos outros.

+/- assim

elseif (($classe[0] == '64') || ($classe[0] == '65') || $Error!=1) {
echo"..."; }

e para o else
elseif ($Error!=1) {
echo "ABCD"; }

Obrigado
Sinxtaxe de php
Por: usuario_apagado_68976
19/11/08
Gostaria de dar os parabéns pelo ao autor do artigo criado sobre sintaxe de php muito bom..
Ótimo
Por: Wesley
14/3/09
Ótimo trabalho, parabéns.

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato