Curso de PHP – Estrutura de controles
Durante o desenvolvimento de um projeto é muito comum que o sistema precise receber alguma informação e com base nessa informação, tomar um decisão para escolher o próximo caminho(ou bloco de comandos) a ser executado. Um exemplo rápido disso é o login. Caso a pessoa esteja logado no site, o mesmo deve apresentar um conteudo diferente do caso do usuário ser apenas um visitante. Vamos ilustrar esse exemplo, com 2 estruturas de controle encontradas no PHP.
if / else
o comando “if” com certeza é o mais conhecido na área da programação. Você faz uma pergunta para o PHP e caso essa seja verdadeira, ele irá executar o que lhe foi mandado, ou caso seja falsa, executará outro bloco (opcional)
ex:
if($logado == true){
echo "Olá usuário logado.";
}
Esse bloco acima, irá imprimir a mensagem entre aspas, caso a variavel $logado seja verdadeira. Se ela for falsa, nada acontece. Agora veja o mesmo exemplo com else:
if($logado == true){
echo "Olá usuário logado.";
}else{
echo "Olá visitante.";
}
Esse diferencial será executado, apenas quando a condição do IF for falsa. Então, se o usuário não estiver logado, o sistema irá trata-lo como visitante. Para aninhar ifs, isto é, realizar várias validações no mesmo bloco, você pode usar o camando elseif. Veja o exemplo modificado a seguir:
if($logado == 1){
echo "Olá usuário logado.";
}elseif($logado==2){
echo "Olá Administrador.";
}else{
echo "Olá visitante.";
}
Percebe a diferença? Antes do PHP escapar para o ELSE, ele faz mais uma verificação para ver se a váriavel $logado possuí o valor 2. Caso seja verdadeiro, ele imprime a mensagem senão, cai no else normalmente.
O PHP nos fornece uma outra estrutra chamada “switch”. Ela nos permite fazer “IFs aninhados” de forma muito mais elegante. A diferença é que a expressão para todas as opções deve ser a mesma (enquanto no “if aninhado” você pode mudar a expressão). Outros dois detalhes importante são que: ao fim de cada bloco de opções, você deve adicionar a palavra reservada “break” para que o interpretador não continue executando os outros códigos e que o “else” não existe no switch. O comando que realiza a mesma função dele chama-se “default”. veja o mesmo exemplo do “if aninhado” reescrito com switch:
switch($logado){
case 1: echo "Olá usuário logado.";
break;
case 2: echo "Olá Administrador.";
break;
default: echo "Olá visitante.";
}
O Código fica muito mais elegante e limpo. Principalmente quando existem muitos caminhos diferentes para seguir.
Posts relacionados:
- Curso de PHP – Módulo Básico – Estrutura de Repetição – Parte 6 Dando continuidade ao meu Curso de PHP, vamos falar a...
- Curso de PHP – Módulo Básico – Iniciando em PHP – Parte 3 Iniciando em PHP A partir de agora, iremos supor que...
- Curso de PHP – Módulo Básico – Parte 1 Nos ultimos tempos, o número de visitantes que estão caindo...






2 Comentários Recebidos
January 23rd, 2010 @21:38
No caso do switch, não precisa do break; logo após ao default. Se caiu no default foi porque nao caiu em nenhum outro caso, então não há mais nada além do default que poderá ser executado.
January 24th, 2010 @10:04
Muito bem observado André!
Vou começar a revisar melhor meus posts =)
Valeu!
Faça seu Comentário