Você está em: Principal › Tutoriais › Almirrivas : Php010
O comando switch pode ser usado como uma alternativa ao comando if com a cláusula elseif. Existe uma diferença básica entre estes comandos. O comando switch avalia uma única expressão executando diferentes blocos de código de acordo com a expressão avaliada. A expressão avaliada precisa também ser de um tipo simples como um número, uma string ou valor booleano. No comando switch o valor da expressão é testado a cada cláusula case.
Fig. 1 - Script code0901.php
Define que a variável $feriado recebe a string "carnaval"
Define que expressão será avaliada através do comando switch
Se a expressão $carnaval contiver a string "carnaval" imprime a mensagem "feliz carnaval !".
Se a expressão $carnaval contiver a string "natal" imprime a mensagem "feliz natal.".
Se a expressão $feriado não contiver nenhum dos dois valores imprime a mensagem "tenha um bom dia.".
Observe que em todos os blocos de códigos imediatamente abaixo dos cases a última linha é um comando break. Este comando é necessário para que os demais cases e o default não sejam executados. Se não houver o comando case no código acima a mensagem "tenha um bom dia." sempre será executada. Pois ela é verdade em qualquer situação.
Veja o resultado deste código no navegador.
Fig. 2 - Resultado do script code0901.php
Usando o operador ?
O operador ? é semelhante ao comando if porém ele retorna um dos dois valores das expressões seguintes a expressão avaliada.
Se a expressão avaliada for verdadeira a segunda expressão é retornada se for falso a terceira expressão será retornada.
Fig. 3 - Script code0902.php
Define que a variável $sexo recebe a string "m"
Nesta linha o resultado do operador ? é impresso.
Caso a variável $sexo contenha a string "m" será enviado para o comando print a string "Sexo feminino", caso contrário será enviado para o comando print a string "Sexo masculino".
O operador ? é um operador ternário.
A primeira expressão dele é ($sexo="m") que avalia se o valor contido na expressão $sexo equivale a string "m". Se isso for verdade o operador ? retorna a sua segunda expressão que é a string "Sexo feminino" senão for verdade retorna a sua terceira expressão que é a string "Sexo masculino".
Veja como fica o script code0902.php na tela do navegador.
Fig. 4 - Saída no navegador do script code0902.php
Veja abaixo alguns outros exemplos do uso de estruturas de seleção do PHP.
Fig. 5 - Script code0903.php
No exemplo acima utilizamos todos os controles de seleção que estudamos até o momento. Eles estão encadeados o que pode confundir um pouco você porém vamos para uma breve explicação de como este código deverá ser processado pelo PHP.
A primeira estrutura de seleção que encontramos é o comando if (linha 10) com suas cláusulas elseif (linha 14) e else (linha 34).
O bloco de código entre as linhas 11 e 13 só será executado se nota tiver uma valor inteiro menor que 4.
Se o valor contido na variável $nota for maior ou igual a 4 ou menor que 7 será executado o bloco de código entre as linhas 15 e 33.
Caso contrário o bloco de código entre as linhas 35 e 38 será executado.
Bom, acabamos de esclarecer como funcionará a estrutura de seleção if e suas cláusulas elseif e else.
Entre as linhas 16 e 33 usamos a estrutura de seleção switch que examina a variável nota e faz toma as seguintes decisões:
Se nota for igual a 4 executa o bloco de código entre as linhas 19 e 22.
Se nota for igual a 5 executa o bloco de código entre as linhas 24 e 27.
Se for um outro valor qualquer diferente de 4 e 5 executa o bloco de código entre as linhas 29 e 32.
Na linha 36 temos o comando print que imprime uma determinada mensagem de acordo com a avaliação da expressão $nota==10.
Se a variável $nota contiver o valor inteiro 10 a string "Brilhante, você acertou tudo." Será enviada para o comando print enviar para o navegador. Caso contrário a expressão "Parabéns. Mas com um pouco mais de estudo poderia ter acertado tudo." é que será enviada ao comando print.
Veja o resultado do script acima no navegador.
Fig. 6 - Resultado do script code0903.php
Nesta pequena salada de código do script code0903.php utilizamos estruturas de seleção encadeadas. Ela não seria muito útil no mundo real. Mas procure estuda-la e compreende-la. Se tiver alguma dúvida sobre os comandos e operadores de controle de seleção entre em contato comigo para que eu possa ajuda-lo.