segunda-feira, 16 de novembro de 2015

Estruturas condicionais com PHP

Neste artigo falaremos sobre três estruturas condicionais do PHP. O 'if', o 'switch' e o operador ternário.

O IF

O if é a mais básica estrutura condicional de qualquer linguagem. No PHP o if pode ser executado de duas formas:

if($condição) {
     // código
}

ou

if($condicao):
     // código
endif;

As duas formas fazem a mesma coisa sem diferença significativa no desempenho. Abaixo seguem exemplos utilizando if das duas maneiras:


if($x == 1) {
     echo 'X é igual a 1';
} elseif ($x == 2) {
     echo 'X é igual a 2;
} elesif ($x == 3) {
     echo 'X é igual a 3';
}else{
     echo 'Não sei o valor de X';
}

O código acima compara o valor de $x com os valores 1, 2 e 3 utilizando o operador 'elseif', caso nenhuma das verificações satisfaça a condição, é exibido 'Não sei o valor de X'.

Segue abaixo o mesmo exemplo utilizando a outra forma de executar um if:

$x = 3;

if($x == 1):
     echo 'X é igual a 1';
elseif ($x == 2):
     echo 'X é igual a 2;
elesif ($x == 3):
     echo 'X é igual a 3';
else:
     echo 'Não sei o valor de X';
endif;
O Operador ternário

O operador ternário também é muito simples. Segue a sua estrutura básica:

$valor = ($condicao) ? “A condição é verdadeira” : “A condição é falsa”;

A linha acima diz:
teste a condição ($condição), se for verdadeira insira a string “A condição é verdadeira” na variável $valor, caso contrário insira a string “A condição é falsa”.

Um outro exemplo disso pode ser:

$idade = 17;
$maior_de_idade = ($idade > 18) ? true : false;

Na operação acima é testado a idade. Está sendo verificada se o valor contido nela é maior que 18. Se a condição for verdadeira, insere o valor booleano true na variável $idade, caso contrário insere false.
O uso do parenteses é opcional. Sendo que a expressão abaixo funciona da mesma forma do exemplo anterior:

$maior_de_idade = $idade > 18 ? true : false;

O SWITCH

Outra estrutura condicional é o SWITCH, conhecida como um uma forma mais elegante de fazer testes condicionais em relação ao IF. A sua sintaxe é a seguinte:

switch($condição) {
      case $opcao1:
            // codigo opção 1
      break;
      case $opcao2:
            // codigo opção 2
      break;
      case $opcao3:
            // codigo opcao3
      break;
      default:
            // codigo caso nenhuma das opções satisfaça a condição
}

A primeira instrução da estrutura (switch), é aonde você insere a condição, ou o valor que será comparado.
Em seguida temos o operador case. Nele você deve inserir os valores ou situações que serão tratados.
O comando 'break' deve ser inserido no fim do bloco case. Ele define o fim da execução daquele case.
E por fim, o default. O bloco default será executado quando nenhuma das opções satisfizerem a condição.
Como ele é o ultimo bloco, o uso do break não é obrigatório aqui, porque não há mais nenhuma opção a ser testada.

Abaixo seguem exemplos práticos com o switch.

Com String:

$nome = “Maria”
switch($nome) {
      case “Carol”:
            // operaçoes para Carol
      break;
      case “Marcelo”:
            // operações para Marcelo
      break;
      case “Maria”:
            // operaçoes para Maria
      break;
      default:
            // o nome não é igual a nenhum dos definidos acima
}

Com Números:

switch($idade) {
      case ($idade <= 13):
            echo 'Criança';
      break;
      case (($idade > 13) && ($idade < 20)):
            echo 'Adolescente';
      break;
      case ($idade >= 20):
            echo 'Adulto';
      break;
}

Omitindo o comando 'break', os blocos case que estiverem após do atual também serão executados.
O exemplo abaixo faz a mesma coisa do mostrado anteriormente. A diferença é que a sua estrutura omite o 'break' para exibir 'Criança' para valores abaixo de 13.

$idade = 20;
switch($idade) {
      case ($idade == 1):
      case ($idade == 2):
      case ($idade == 3):
      case ($idade == 4):
      case ($idade == 5):
      case ($idade == 6):
      case ($idade == 7):
      case ($idade == 8):
      case ($idade == 9):
      case ($idade == 10):
      case ($idade == 11):
      case ($idade == 12):
      case ($idade == 13):
            echo 'Criança';
      break;
      case (($idade > 13) && ($idade < 20)):
            echo 'Adolescente';
      break;
      case ($idade >= 20):
            echo 'Adulto';
      break;

}

Nenhum comentário:

Postar um comentário