Condicional IF Else no PHP. Aprenda suas características! \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 15 Horas 

 57 Min 

 04 Seg 

   Tempo restante da oferta: 15 57 04 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Condicional IF Else no PHP. Aprenda suas características!  [ PHP ](https://www.treinaweb.com.br/blog/categoria/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.

 [ Elton Fonseca ](https://www.treinaweb.com.br/blog/autor/elton-fonseca) 7 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/06/condicional-if-else-no-php-aprenda-suas-caracteristicas.png)  

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](https://www.treinaweb.com.br/blog/o-que-e-php/ "PHP") e a sintaxe indicada pela PSR-12.

[  ![PHP - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/php.svg)   Curso PHP - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/php-fundamentos)

## 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

```php
if (expressão) 
	instrução

```

E para execução de mais de uma instrução usamos um bloco de código representado por `{}`:

```php
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:

```php
$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`:

```php
$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`:

```php
$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](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/php.svg)   Curso PHP - Recursos essenciais Conhecer o curso ](https://www.treinaweb.com.br/curso/php-recursos-essenciais)

## Conversões automáticas do PHP

O PHP é uma [linguagem de programação de tipagem fraca](https://www.treinaweb.com.br/blog/quais-as-diferencas-entre-tipagens-estatica-ou-dinamica-e-forte-ou-fraca/ "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:

```php
$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:

```php
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](https://www.php.net/manual/pt_BR/types.comparisons.php "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](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/06/tabela-de-conversao-if-no-php.png)

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:

```php
$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:

```php
$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:

```php
$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](https://www.treinaweb.com.br/blog/o-que-sao-as-psrs-do-php/ "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:

```php
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:

```php
if ($idade > 2)
	echo "uso sem restrições";

```

[  ![Desenvolvedor PHP Júnior](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/php.svg)   Formação Desenvolvedor PHP Júnior Conhecer a formação ](https://www.treinaweb.com.br/formacao/desenvolvedor-php-junior)

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

- [ #guia da linguagem PHP ](https://www.treinaweb.com.br/blog/tag/guia-da-linguagem-php)

Autor

 ![Elton Fonseca](//secure.gravatar.com/avatar/2cee05645357ced0841ce76ba5569c72?d=mm)

## 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](https://twitter.com/eltonfonsecadev) 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/elton-fonseca)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/background-post-400x280.jpg)  [ Algoritmos ](https://www.treinaweb.com.br/blog/categoria/algoritmos) 

     10 anos atrás

    ##  [ Complexidade ciclomática, análise estática e refatoração ](https://www.treinaweb.com.br/blog/complexidade-ciclomatica-analise-estatica-e-refatoracao) 

     Veremos nesse artigo como se dá a mensuração da complexidade ciclomática; como os analisadores estáticos podem nos auxiliar e a importância da refatoração.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/05/O-QUE-E-PHP-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     5 anos atrás

    ##  [ Guia da linguagem PHP ](https://www.treinaweb.com.br/blog/guia-da-linguagem-php) 

     Nesse guia de PHP você aprenderá o necessário para criar os seus primeiros softwares com a linguagem de programação PHP. Acesse agora mesmo!

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/ESTRUTURAS-CONDICIONAIS-REPETICAO-JAVASCRIPT-400x280.png)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     6 anos atrás

    ##  [ Estruturas condicionais e estruturas de repetição em JavaScript ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-estruturas-de-repeticao-em-javascript) 

     Neste artigo veremos como utilizar as estruturas condicionais (if, else) e as estruturas de repetição (while, for) no JavaScript.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/10/ESTRUTURAS-CONDICIONAIS-REPETIÇÃO-400x280.png)  [ Algoritmos ](https://www.treinaweb.com.br/blog/categoria/algoritmos) 

     6 anos atrás

    ##  [ Estruturas condicionais e de repetição ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao) 

     Entenda a função das estruturas condicionais (If - Else) e de repetição (While - For) nos estudos sobre lógica de programação.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/07/24104425/heranca-python-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     8 anos atrás

    ##  [ Atribuição condicional no Python ](https://www.treinaweb.com.br/blog/atribuicao-condicional-no-python) 

     Veja neste artigo como utilizar a atribuição condicional em seus scripts Python.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/ESTRUTURAS-CONDICIONAIS-JAVA-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     6 anos atrás

    ##  [ Estruturas condicionais e estruturas de repetição em Java ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-estruturas-de-repeticao-em-java) 

     Depois de conhecermos mais sobre variáveis e constantes no Java, veremos neste artigo as estruturas condicionais e estruturas de repetição.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/12/TS-ZOD-400x280.jpg)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     3 anos atrás

    ##  [ O que é o Zod? ](https://www.treinaweb.com.br/blog/o-que-e-o-zod) 

     Neste artigo vamos ter uma introdução sobre o Zod, uma biblioteca de declaração e validação de dados em TypeScript e criar um exemplo de como utilizá-la.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/05/como-instalar-o-csharp-e-nosso-primeiro-exemplo-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     4 anos atrás

    ##  [ Estruturas condicionais e de repetição no C# ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-no-csharp) 

     Veremos nesse artigo sobre quais são e como podemos utilizar as estruturas condicionais e as estruturas de repetição no C#

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/02/01143234/PROVEDORES-LOG-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     7 anos atrás

    ##  [ Switch Expressions no C# 8.0 ](https://www.treinaweb.com.br/blog/switch-expressions-no-c-8-0) 

     Obtenha uma visão geral do recurso switch expressions do C# 8.0 e aprenda a criar códigos mais limpos e legíveis nesta versão da linguagem.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/img-wlad-blog-400x280.jpg)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     10 anos atrás

    ##  [ Binary Literals, Digit Separators e Throw Expressions no C# 7.0 ](https://www.treinaweb.com.br/blog/binary-literals-digit-separators-e-throw-expressions-no-csharp-7) 

     Conheça os recursos Binary Literals, Digit Separators e Throw Expressions da versão 7 do C#.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/03/como-instalar-o-dart-e-executar-seu-primeiro-exemplo-400x280.png)  [ Dart ](https://www.treinaweb.com.br/blog/categoria/dart) 

     6 anos atrás

    ##  [ Estruturas condicionais e de repetição no Dart ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-no-dart) 

     Neste artigo conheceremos as estruturas condicionais e estruturas de repetição na linguagem de programação Dart.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/estruturas-condicionais-e-de-repeticao-no-python-1-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     6 anos atrás

    ##  [ Estruturas condicionais e de repetição no Python ](https://www.treinaweb.com.br/blog/estruturas-condicionais-e-de-repeticao-no-python) 

     Neste artigo, conheceremos as estruturas condicionais e de repetição no Python.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **15h 57min 04s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
