Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Comando switch
  2. Switch com múltiplos cases
  3. Switch com strings
  4. Switch com enums
  5. match

Para fazermos escolhas na linguagem PHP, usamos o comando switch que irá comparar um valor a um grupo de outros valores e executar um trecho para um caso específico quanto o retorno da comparação é verdadeira.

Os comandos de escolha bem como o seus funcionamentos já foram discutidos em Portugol: Comando de Escolha, sendo a leitura recomendada.

Para fazermos escolhas da linguagem de programação PHP, utilizamos o comando switch que possui sua sintaxe apresentada abaixo. O comando switch utiliza o comando break como parte de sua sintaxe.

Fig. 1: Comando switch
Sintaxe
switch(condicao)
{
    case caso1: 
	      //codigo
    break;
    case caso2: 
	      //codigo
    break;
    default:
	      //codigo
    break;
}

O caso default é opcional. Com esse caso, podemos executar algum trecho de código caso o valor não seja igual a algum dos valores da cláusula case.

Exemplo 1
<?php
  $teste = 3;
  switch($teste){
    case 0: echo "0"; break;
    case 1: echo "1"; break;
    case 2: echo "2"; break;
    case 3: echo "3"; break;
    default: 
            echo "inválido.";
    break;
  }
?>
Saída
3

O comando switch utiliza outro comando, o comando break para interromper a execução do comando switch. Para ver como funciona o comando break visite Comando Break.

Para a execução de um mesmo trecho de código para mais de uma caso, basta adicionar as cláusulas case em sequência ou 'um abaixo do outro' separadas por (:).

Exemplo 3
<?php
  $teste = 2;
  switch($teste){
    case 0: 
    case 1: 
    case 2: echo "0,1,2"; break;
    default: echo "inválido."; break;
  }?>
Saída
0,1,2

A linguagem PHP permite também que strings sejam utilizandos nos cases do comando switch, não limitando-se apenas aos tipos inteiros.

Exemplo 4
<?php
  $teste = "str0";
  switch($teste)
  {
    case "str0": echo "str0"; break;
    default: echo "inválido."; break;
  }
?>
Saída
str0

PHP, assim como C/C++, permite que o switch tenha membros de enumeradores em seus cases. O tipo de dado enum pode ser visto em PHP Básico : Enum.

Exemplo 3
<?php
  enum MEnum
  { 
  	case Zero;
  	case Um;
  	case Dois;
  	case Tres;
  }
  
  $teste = MEnum::Um;
  
  switch($teste)
  {
    case MEnum::Zero: echo "Zero"; break;
    case MEnum::Um: echo "Um"; break;
    default: echo "inválido."; break;
  }
?>
Saída
Um
  1. 21/08/2025 - revisão 4 - Ajustes: pontuais, sintaxes e target de links; Adição: swich com 'string' e 'enum'
  2. 21/09/2024 - revisão 3 - correção em links portugol; ajustes pontuais
  3. 03/09/2024 - revisão 2 - Correção em link de objetivo 'dar nomes as variáveis e constantes'
  4. 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  5. 04/09/2023 - versão inicial