Uma das estruturas mais utilizadas em programação é o IF. Nesse artigo vamos aprender como usar a estrutura de condicional IF no PHP. Também falaremos sobre as particularidades dessa estrutura de decisão no PHP e a sintaxe indicada pela PSR-12.
Curso PHP - Fundamentos
Conhecer o cursoComo funciona a estrutura de decisão IF
A estrutura de decisão IF executa uma ou mais instruções (linhas de código) caso a expressão passada para ela retorne verdadeiro. O IF no PHP possui as seguintes sintaxes:
Para execução de única instrução
if (expressão)
instrução
E para execução de mais de uma instrução usamos um bloco de código representado por {}
:
if (expressão) {
instrução 1
instrução 2
instrução N
}
Como usar o condicional IF no PHP
Vamos agora ver na prática como podemos usar o condicional IF no PHP. Vamos supor que precisamos avaliar a idade de um paciente para uso de um remédio. Se a idade for menor que 2 anos não é permitido o uso:
$idade = 1;
if ($idade < 2) {
echo "uso não permitido";
}
Podemos usar qualquer expressão que retorna um booleano para ser analisado na estrutura de decisão.
If Else no PHP! Executando algo quando a condição não é verdadeira
Existem situações onde queremos executar algo caso a expressão passada para o IF não seja verdadeira. Nesse caso podemos utilizar a diretiva else
:
$idade = 17;
if ($idade < 2) {
echo "uso não permitido";
} else {
echo "uso sem restrições";
}
No exemplo acima, se a idade não for menor que 2 ele cairá no else e mostrará uso sem restrições
.
Elseif. Analisando mais uma expressão
Existem situações onde é necessário avaliar uma segunda expressão caso a primeira não seja verdadeira, nesse caso usamos a diretiva elseif
:
$idade = 17;
if ($idade < 2) {
echo "uso não permitido";
} elseif ($idade > 65) {
echo "uso somente com prescrição médica";
} else {
echo "uso sem restrições";
}
Se a expressão do if não retornar verdadeiro, ele analisará o elseif
, se a expressão $idade > 65
for verdadeira ele mostrará uso somente com prescrição médica
, caso contrário ele cairá no else.
Curso PHP - Recursos essenciais
Conhecer o cursoConversões automáticas do PHP
O PHP é uma linguagem de programação de tipagem fraca, devido a essa característica sempre que possível ele tenta converter os valores automaticamente. Isso também acontece quando passamos algo para o IF que não é uma expressão que retorna um booleano.
Veja o exemplo abaixo:
$string = "Treinaweb";
if ($string) {
echo "Retornou verdadeiro";
}
No exemplo acima o PHP fez a conversão da string “Treinaweb” para booleano. É como se fizéssemos (bool) $string
. Se testarmos isso veremos que retorna verdadeiro:
var_dump((bool) $string); //retorna booleano true
Essa mesma conversão acontece se passarmos outros tipos como número, array, objeto e etc. Na documentação existe uma tabela de comparação PHP. Essas conversões de IF são definidas na coluna boolean : if($x)
da tabela:
Note que itens como números diferentes de 0, strings diferentes de “” e arrays com elementos retornam verdadeiro. Enquanto numero 0, string vazia e array vazio retornam falso.
Sempre use comparação estrita no PHP
Devido a mesma característica da linguagem explicada no tópico anterior, o PHP também tenta realizar conversões quando vamos comparar valores. Por exemplo, ao tentarmos fazer:
$string = "Treinaweb";
if ($string == 0) {
echo "Retornou verdadeiro";
}
A expressão do IF retornará verdadeiro! Parece estranho, mas na realidade o que acontece é que o php tenta converter a string “treinaweb” para inteiro. Quando tentamos converter uma string para inteiro, o PHP olha no começo dela se tem algum número que pode aproveitar, por exemplo:
$string = "10Treinaweb";
echo (int) $string; //imprime 10
Quando não tem nada no início da string que pode ser aproveitado, o PHP retorna um inteiro 0. Logo 0 é igual a 0
por isso retorna verdadeiro e entra no IF.
Existem os comparadores estritos, que verificam o tipo e o valor. Se o tipo não for igual nos dois comparados ele nem olha o valor. Veja como ficaria o IF anterior:
$string = "Treinaweb";
if ($string === 0) {
echo "Retornou verdadeiro";
}
Nesse modo como temos uma string e um inteiro ele já retornará falso diretamente. Existe também o operador diferente estrito representado pelo símbolo !==
IF Else no PHP e o padrão PSR-12
As PSRs do PHP definem um conjunto de recomendações para a linguagem de programação PHP. A PSR-12 mais especificamente define o padrão para codificação. Segundo ela o IF Else no PHP deve seguir as seguintes regras:
- Obrigatório: Espaço após a palavra chave da estrutura;
- Proibido: Espaço após o parêntese de abertura;
- Proibido: Espaço antes do fechamento do parêntese;
- Obrigatório: O corpo da estrutura de controle deve estar envolvido por chaves, mesmo que possua só uma instrução;
- Obrigatório: Espaço entre o parêntese de fechamento e a abertura da tag;
- Obrigatório: Uma identação no corpo da estrutura;
- Obrigatório: O corpo deve estar uma linha depois da abertura da chave
- Obrigatório: A chave de fechamento deve estar uma linha após o corpo;
O que vai resultar em um código formatado do seguinte modo:
if ($idade < 2) {
echo "uso não permitido";
} elseif ($idade > 65) {
echo "uso somente com prescrição médica";
} else {
echo "uso sem restrições";
}
Vale ressaltar que pela recomendação nunca devemos usar IF sem o bloco {}
, deste modo:
if ($idade > 2)
echo "uso sem restrições";
Formação Desenvolvedor PHP
Conhecer a formaçãoConsiderações finais
A estrutura de decisão IF possui uma sintaxe muito simples e fácil no PHP, porém é importante nos atentarmos aos detalhes específicos da linguagem, como, as conversões automáticas, uso de comparadores estritos ao invés de comparadores simples e as recomendações da PSR-12.