Referência Rápida de Declaração de Caso PHP

Você já quis comparar o valor de uma variável ou expressão com vários resultados possíveis e executar condicionalmente algum código? Existem muitas opções disponíveis para você fazer isso. Você pode usar várias condições if-else ou usar instruções switch-case.

Neste tutorial, mostrarei como usar switch-case em PHP para comparar uma variável com muitos valores diferentes.

Usando switch-case vs if-else : Comparação direta

Vamos começar com um exemplo simples que mostra uma comparação direta entre o uso if-else e switch-case para controlar o fluxo do programa.

Tente executar o código acima várias vezes para obter uma saída diferente. Você notará algumas coisas.

Cada case afirmação é semelhante a um if ou elseif quadra. A saída que você obtém do if-else seção é igual à saída do switch-case seção. Lembre-se sempre de usar um break instrução para parar a execução do código para cada case declaração.

Digamos que você esqueceu de incluir break com cada case bloco e o valor de $animal é ‘Leão’. Nesse caso, o código exibirá a localização de leões, veados e cabras, bem como a declaração padrão sobre o guia turístico.

o default instrução é como um catch-all que lida com todos os outros valores de $animal. É semelhante ao else bloco que usamos no if-else seção. Lembre-se de que você não pode usar vários default declarações em seu código.

Verificando várias condições de uma só vez

O que você faz se houver vários animais na mesma seção do zoológico? Com if-else blocos, você pode colocá-los todos dentro de uma instrução condicional usando || para ver se algum deles avalia true. Aqui está um exemplo:

O código acima nos diria corretamente que as Zebras estão no oeste seção do zoológico. Ele pulou o código dentro do primeiro bloco if porque isso só é executado quando o $animal é um elefante, leão ou cabra.

Vamos reescrever o código acima na forma de switch-case declarações. Você pode ficar tentado a escrevê-lo como mostrado abaixo:

Olhe atentamente e você verá que a declaração agora diz que as Zebras estão no leste seção do zoológico. Então, o que aconteceu aqui?

O valor ou expressão que passamos para switch é vagamente comparado ao valor ou expressão que passamos com cada case declaração. Agora, 'Elephant' || 'Lion || 'Goat' em última análise, avalia true. Isso também retorna true quando vagamente comparado com o valor dentro $animal porque uma string não vazia é um valor verdadeiro. O código para a primeira instrução case é então executado e obtemos o local errado para o mesmo zoológico.

A maneira correta de lidar com vários case instruções que devem executar a mesma seção de código é escrevendo os valores case em linhas separadas, conforme mostrado abaixo:

Conseguimos a localização correta das Zebras agora e nenhum visitante se perderá ao procurá-las.

Repetir Avaliação e Desempenho

Mais uma coisa que você deve ter em mente é que a condição é avaliada apenas uma vez ao usar switch declaração. Por outro lado, é avaliado várias vezes ao usar if-else declaração, ou seja. uma vez para cada if quadra. Aqui está um exemplo:

Fazemos uma chamada para a função most_populated() que retorna o nome de uma cidade. Ele simplesmente retorna Nova York neste caso, mas pode ser muito mais complicado e obter dados da cidade de um serviço da Web para o país passado. Escrever várias condições if-else neste caso resultaria em várias chamadas para o most_populated() função.

Obviamente, poderíamos evitar todas essas chamadas armazenando o resultado da chamada em uma variável, mas o uso de switch permite que você não use nenhuma variável.

Pensamentos finais

Neste tutorial, mostrei como usar switch-case instruções em PHP no lugar de if-else blocos para executar código condicionalmente. Também vimos como escrever case declarações que cobrem várias condições. Por fim, aprendemos como usar switch-case pode ser mais rápido do que if-else bloqueios em determinadas situações.

Deixe uma resposta