Fale com a gente no WhatsApp Fale com a gente no WhatsApp
Como posso te ajudar?
Milena - Atendimento TreinaWeb

Oi, eu sou a Milena e estou online agora para tirar todas as suas dúvidas!

Fechar Fechar
PHP

Condicional IF Else no PHP. Aprenda suas características!

Aprenda como trabalhar com condicional if else no php, as principais características dessa estrutura de decisão para a linguagem e as recomendações da PSR12.

6 anos atrás

Formação Desenvolvedor PHP
Conheça a formação em detalhes

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.

PHP - Fundamentos
Curso PHP - Fundamentos
Conhecer o curso

Como 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.

PHP - Recursos essenciais
Curso PHP - Recursos essenciais
Conhecer o curso

Conversõ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:

Tabela de conversão de tipos para condicional IF Else no PHP

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";

Desenvolvedor PHP
Formação Desenvolvedor PHP
Conhecer a formação

Consideraçõ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.

Autor(a) do artigo

Elton Fonseca
Elton Fonseca

Professor e desenvolvedor. Formado em análise e desenvolvimento de sistema, pós graduado em engenharia e arquitetura de software. É autor de cursos em diversos temas, como, desenvolvimento back-end, cloud computing e CMSs. Nas horas vagas adora estudar sobre o mercado financeiro, cozinhar e brincar com pequeno Daniel. @eltonfonsecadev

Todos os artigos

Artigos relacionados Ver todos