Programação
 › Algoritmo  › C/C++  › Java
Web
 › HTML/XHTML  › JavaScript  › PHP
Sistema Operacional
 › Comandos de DOS  › Windows  › Linux  › Mac/BSD
Office
 › Word / Writer  › Excel / Calc
Áreas do Site
 › Download  › Fórum  › Blog
Recomendamos
Computadores e Informática em Lisboa
TI Expert » Programação » Web » PHP » Switch, Case e Default

Switch, Case e Default

Em PHP, existe um comando que permite utilizar várias opções definidas agrupadas em uma única estrutura. Estamos falando de switch.

Switch trabalha usando casos (case) que são valores definidos.

A estrutura do switch é: switch (variável) { case valor: código a ser executado }

O importante é entender que o switch executa tudo a partir do ponto do case encontrado, isso quer dizer que, se possuirmos um switch com 5 cases e o segundo case for ativado, então, será executado o case 2 e também os cases 3, 4 e 5. Para evitar que isso aconteça, podemos simplesmente parar a execução do switch usando o comando break.

Switch nos poupa o trabalho de criar várias estruturas if-else aninhadas se elas forem apenas para verificar um dado específico. Por exemplo, se quizéssemos que o usuário digitasse um número entre 0 a 4 apenas para executar um trecho de código.

<?php
  $var1 = 0;
  if ($var1 == 0) {
    //código se var1 for 0
  } elseif ($var1 == 1) {
    //código se var1 for 1
  } elseif ($var1 == 2){
    //código se var1 for 2
  } elseif ($var1 == 3) {
    //código se var1 for 3
  } elseif ($var1 == 4) {
    //código se var1 for 4
  }
?>

Com switch seria assim:

<?php
  $var1 = 0;
  switch ($var1){
    case 0:
      //código se var1 for 0
      break;
    case 1:
      //código se var1 for 1
      break;
    case 2:
      //código se var1 for 2
      break;
    case 3:
      //código se var1 for 3
      break;
    case 4:
      //código se var1 for 4
      break;
  }
?>

O caso default serve para executar um trecho do código que não tenha seu valor definido em case.

Usando o exemplo acima, o switch possui 5 cases que vão de 0 a 4, o que aconteceria se a variável var1 valesse 10? Está é a finalidade do default, ele irá pegar qualquer caso que não esteja definido.

<?php
  $var1 = 0;
  switch ($var1){
    case 0:
      //código se var1 for 0
      break;
    case 1:
      //código se var1 for 1
      break;
    case 2:
      //código se var1 for 2
      break;
    case 3:
      //código se var1 for 3
      break;
    case 4:
      //código se var1 for 4
      break;
    default:
      //código se var1 não for nenhum dos casos anteriores
      break;
  }
?>

Abaixo está um exemplo de como podemos usar switch, case e dafault de forma simples.

<?php
  $letra = 'A';
  switch (strtoupper($letra)){
    case 'A':
    case 'E':
    case 'I':
    case 'O':
    case 'U':
      echo ("Esta letra é uma vogal");
      break;
    default:
      echo ("Esta letra é uma consoante");
      break;
  }
?>

No exemplo acima, há um switch que irá procurar pelo valor da variável letra. Como podemos ver, letra vale A. Como PHP é uma linguagem que chamamos de case sensitive (diferencia maiúsculas de minúsculas) usamos a função strtoupper() para converter qualquer caracter em maiúsculo. Switch irá encontrar logo no primeiro caso o valor A e começará a executar dessa linha em diante, pois não há nenhum comando que pare a execução, ou seja, o switch irá executar até o case U onde mostrará uma mensagem -> Esta letra é uma vogal. Mas não será executado default porque há um comando break antes dele que impedirá sua execução. No entanto, se modificássemos o valor de letra para qualquer caracter diferente de A, E, I, O e U, apenas default seria executado.

Creative Commons License
Autor: Denys William Xavier
Este artigo está sob Licença Creative Commons.

Faça o download da versão em PDF Indique nosso site Gostou?
Indique nosso site!
Este artigo foi
lido 83591 vezes
Bookmark e Compartilhe

Páginas Relacionadas

Enquete
O Google Chrome OS irá desbancar o Microsoft Windows 7?
» ProgramaçãoAlgorítmo | C/C++ | Java

» WebHTML/XHTML | JavaScript | PHP

» Sistema OperacionalComandos de DOS | Windows | Linux | Mac/BSD

» OfficeWord/Wirter | Excel/Calc

» Áreas do SiteDownloads | Fórum | Blog