As instruções if, elseif e else são usadas para tomar decisões se uma ou mais expressões forem avaliadas como verdadeiras.
- if = se
- else = senão
- elseif = senão se
Usando If
A sintaxe é a seguinte:
<?php
if (expressão)
instrução;
?>
Se a expressão for avaliada como verdadeira, o PHP executa a instrução, se a expressão for falsa então a instrução é ignorada.
Vamos a um exemplo real. Se um usuário for admin então será executado um echo
<?php
$is_admin = true;
if ($is_admin)
echo 'Bem-vindo admin';
?>
O resultado acima será verdadeiro e exibirá: bem-vindo admin!
If com Chaves “{ }”
Vimos no artigo 004 dessa série que podemos usar chaves para criar um bloco, ou seja, dentro das chaves podemos colocar diversas linhas de código ou instruções.
podemos usar chaves para agrupar várias instruções:
<?php
$is_admin = true;
$pode_editar = false;
if ($is_admin) {
echo 'bem-vindo admin!';
$pode_editar = true;
}
?>
Acima, se $is_admin for verdadeiro então são executadas duas instruções: echo ‘bem-vindo admin!’; e $pode_editar = true;.
Aninhamento de instruções if
Podemos colocar um if dentro de outro. A isso chamamos de aninhar.
<?php
$is_admin = true;
$pode_editar = false;
$pode_aprovar = true;
if ($is_admin) {
echo 'bem-vindo admin!';
if ($pode_aprovar) {
echo "<br>";
echo "aprovacao pendente!";
}
$pode_editar = true;
echo "<br>" . 'você é admin, edição liberada"';
}
?>
IF Dentro do HTML
O PHP fornece uma sintaxe alternativa que permite usar o if com HTML da seguinte forma:
<html>
<?php $is_admin = true; ?>
<?php if ( $is_admin ) : ?>
<a href="#"> Editar </a>
<?php endif; ?>
</html>
Em laranja está o HTML puro, sem se misturar com o PHP.
Lembre-se de colocar os dois pontos (: ?>)
Usando if else
Usando apenas o if sem o else poderemos executar somente um bloco de código quando a condição for verdadeira. Se for falsa nada será executado.
Já o if…else executa um bloco de código quando uma condição é verdadeira ou outro bloco de código se a condição for falsa.
O código abaixo exibe o link “Sair” se o usuário estiver acessado ou, caso contrário, “Entrar”.
<?php
$esta_autenticado = false;
if ($esta_autenticado) {
echo "<a href=#>Sair</a>";
} else {
echo "<a href=#>Entrar</a>";
}
?>
O mesmo código acima pode ser feito dessa forma:
<?php $esta_autenticado = false; ?>
<?php if ($esta_autenticado) : ?>
<a href="#">Sair</a>
<?php else : ?>
<a href="#">Entrar</a>
<?php endif ?>
Em ambos os casos, o resultado é Entrar
Usando if elseif e else
E se se for preciso inserir mais de duas condições? para isso usamos o if elseif e else.
Abaixo vemos um exemplo que compara os valores das variáveis $x e $y
<?php
$x = 10;
$y = 20;
if ($x > $y) {
echo "$x é maior que $y";
} elseif($x < $y) {
echo "$x é menor que $y";
} else {
echo "$x é igual a $y";
}
?>
O resultado será: 10 é menor que 20
Vamos ver um outro exemplo com os dias da semana. Para isso usamos date(“l”). Os dias da semana estarão abreviados e em inglês, mas iremos traduzi-los usando if, elseif e else.
- sunday para domingo
- monday para segunda
- tuesday para terça
- wednesday para quarta
- thursday para quinta
- friday para sexta
- saturday para sábado
<?php
$dia_semana = date("l");
if ($dia_semana == 'Sunday') {
echo "Hoje é Domingo";
} elseif($dia_semana == 'Monday') {
echo "Hoje é Segunda";
} elseif($dia_semana == 'Tuesday') {
echo "Hoje é Terça";
} elseif($dia_semana == 'Wednesday') {
echo "Hoje é Quarta";
} elseif($dia_semana == 'Thursday') {
echo "Hoje é Quinta";
} elseif($dia_semana == 'Friday') {
echo "Hoje é Sexta";
} elseif($dia_semana == 'Saturday') {
echo "Hoje é Sábado";
} else {
echo "Dia da Semana Inválido";
}
?>
Sintaxe Alternativa do PHP para If, elseif e else
Podemos descartar as chaves “{ }” colocando dois pontos “:” ao final de cada condição, mas deveremos usar endif para finalizar o if.
<?php
$x = 10;
$y = 20;
if ($x > $y):
echo "$x é maior que $y";
elseif($x < $y):
echo "$x é menor que $y";
else:
echo "$x é igual a $y";
endif;
?>
Essa sintaxe alternativa é adequada para uso com HTML
Conclusão
Aqui vimos fluxo de controle com if, elseif, else para tomada de decisões.