Resumo : neste tutorial, você aprenderá sobre a instrução switch PHP que executa um bloco de código combinando uma expressão com vários valores.
Introdução à instrução switch do PHP
Quando o valor de uma única variável determina o número de opções diferentes, você pode usar a if...elseif
instrução.
Suponha que você esteja construindo um site cujos usuários tenham muitas funções, como administrador, editor, autor e assinante.
O exemplo a seguir usa uma if elseif
instrução para exibir uma mensagem diferente com base na função do usuário:
<?php
$role = 'subscriber';
$message = '';
if ('admin' === $role) {
$message = 'Welcome, admin!';
} elseif ('editor' === $role) {
$message = 'Welcome! You have some pending articles to edit';
} elseif ('author' === $role) {
$message = 'Welcome! Do you want to publish the draft article?';
} elseif ('subscriber' === $role) {
$message = 'Welcome! Check out some new articles.';
} else {
$message = 'Sorry! You are not authorized to access this page';
}
echo $message;
Linguagem de código: HTML, XML ( xml )
Saída:
Welcome! Check out some new articles.
Linguagem de código: JavaScript ( javascript )
Quando o valor de uma única variável especifica o número de opções diferentes, é muito mais limpo usar a switch
instrução assim:
<?php
$role = 'admin';
$message = '';
switch ($role) {
case 'admin':
$message = 'Welcome, admin!';
break;
case 'editor':
$message = 'Welcome! You have some pending articles to edit';
break;
case 'author':
$message = 'Welcome! Do you want to publish the draft article?';
break;
case 'subscriber':
$message = 'Welcome! Check out some new articles.';
break;
default:
$message = 'You are not authorized to access this page';
}
echo $message;
Linguagem de código: HTML, XML ( xml )
O seguinte ilustra a sintaxe da switch
instrução:
<?php
switch (expression) {
case value1:
// code block 1
break;
case value2:
// code block 2
break;
case value3:
// code block 3
break;
default:
// default code block
}
Linguagem de código: HTML, XML ( xml )
A switch
instrução compara an expression
com o valor em cada caso.
Se a expressão for igual a um valor em um caso, por exemplo, value1
, o PHP executa o bloco de código no caso correspondente até encontrar a primeira break
instrução.
Se não houver correspondência e default
estiver disponível, o PHP executa todas as instruções após a default
palavra-chave.
Caso the default
não seja especificado e não haja correspondência, o controle é passado para a instrução que segue a switch
instrução.
O fluxograma a seguir ilustra como a switch
instrução funciona:
Combinando casos
Como o PHP executa a switch
instrução a partir do rótulo case correspondente até encontrar a break
instrução, você pode combinar vários casos em um.
O exemplo a seguir usa a instrução switch e combina os casos de 'editor'
e 'author'
:
<?php
$message = '';
$role = 'author';
switch ($role) {
case 'admin':
$message = 'Welcome, admin!';
break;
case 'editor':
case 'author':
$message = 'Welcome! Do you want to create a new article?';
break;
case 'subscriber':
$message = 'Welcome! Check out some new articles.';
break;
default:
$message = 'You are not authorized to access this page';
}
echo $message;
Linguagem de código: HTML, XML ( xml )
Saída:
Welcome! Do you want to create a new article?
Linguagem de código: PHP ( php )
Neste exemplo, se role
for editor
ou autor, mostrará a mesma mensagem.
Sintaxe alternativa da instrução switch PHP
PHP também suporta a sintaxe alternativa para a switch
instrução da seguinte forma:
<?php
switch (expression):
case value1:
// code block 1
break;
case value2:
// code block 2
break;
default:
// default code block
break;
endswitch;
Linguagem de código: HTML, XML ( xml )
A sintaxe alternativa é adequada para misturar com o código HTML.
Resumo
switch
Use instruções PHP em vez de uma série deif
instruções na mesma expressão.