Troca de PHP

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...elseifinstruçã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 elseifinstruçã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 switchinstruçã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 switchinstruçã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 switchinstrução compara an expressioncom 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 breakinstrução.

Se não houver correspondência e defaultestiver disponível, o PHP executa todas as instruções após a defaultpalavra-chave.

Caso the defaultnão seja especificado e não haja correspondência, o controle é passado para a instrução que segue a switchinstrução.

O fluxograma a seguir ilustra como a switchinstrução funciona:

Troca de PHP

Combinando casos

Como o PHP executa a switchinstrução a partir do rótulo case correspondente até encontrar a breakinstruçã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 rolefor editorou autor, mostrará a mesma mensagem.

Sintaxe alternativa da instrução switch PHP

PHP também suporta a sintaxe alternativa para a switchinstruçã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

  • switchUse instruções PHP em vez de uma série de ifinstruções na mesma expressão.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *