PHP se

Resumo : neste tutorial, você aprenderá sobre a instrução if do PHP e como usá-la para executar um bloco de código condicionalmente.

Introdução à instrução if do PHP

A ifinstrução permite executar uma instrução se uma expressão for avaliada como true. O seguinte mostra a sintaxe da ifinstrução:

<?php

if ( expression ) 
    statement;Linguagem de código:  HTML, XML  ( xml )

Nesta sintaxe, o PHP avalia o expressionprimeiro. Se expressionfor avaliado como true, o PHP executa o statement. Caso a expressão seja avaliada como false, o PHP ignora o statement.

O fluxograma a seguir ilustra como a ifinstrução funciona:

PHP se fluxograma

O exemplo a seguir usa a ifinstrução para exibir uma mensagem se a $is_adminvariável for definida como true:

<?php

$is_admin = true;
if ($is_admin)
    echo 'Welcome, admin!';Linguagem de código:  HTML, XML  ( xml )

Como $is_adminis true, o script gera a seguinte mensagem:

Welcome, admin!

aparelho encaracolado

Se você deseja executar várias instruções no ifbloco, você pode usar chaves para agrupar várias instruções como esta:

<?php

if ( expression ) {
   statement1;
   statement2;
   // more statement
}Linguagem de código:  HTML, XML  ( xml )

O exemplo a seguir usa a ifinstrução que executa múltiplas instruções:

<?php

$can_edit = false;
$is_admin = true;

if ( $is_admin ) {
   echo 'Welcome, admin!';
   $can_edit = true;
}Linguagem de código:  HTML, XML  ( xml )

Neste exemplo, a ifinstrução exibe uma mensagem e define a $can_editvariável truecomo se a $is_adminvariável for true.

É uma boa prática sempre usar chaves com a ifinstrução, mesmo que ela tenha uma única instrução para executar assim:

<?php

if ( expression ) {
   statement;
}Linguagem de código:  HTML, XML  ( xml )

Além disso, você pode usar espaços entre a expressão e chaves para tornar o código mais legível.

Aninhando instruções if

É possível aninhar uma ifinstrução dentro de outra ifinstrução da seguinte forma:

<?php

if ( expression1 ) {
    // do something
    if( expression2 ) {
        // do other things
    }
}Linguagem de código:  HTML, XML  ( xml )

O exemplo a seguir mostra como aninhar uma ifinstrução em outra ifinstrução:

<?php

$is_admin = true;
$can_approve = true;

if ($is_admin) {
	echo 'Welcome, admin!';
	if ($can_approve) {
		echo 'Please approve the pending items';
	}
}Linguagem de código:  HTML, XML  ( xml )

Instrução incorporada ifem HTML

Para incorporar uma ifinstrução em um documento HTML, você pode usar a sintaxe acima. No entanto, o PHP fornece uma sintaxe melhor que permite misturar bem a instrução if com HTML:

<?php if ( expession) : ?>
<!-- HTML code here -->
<?php endif; ?>Linguagem de código:  HTML, XML  ( xml )

O exemplo a seguir usa a ifinstrução que mostra o link de edição se $is_adminfor true:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>PHP if Statement Demo</title>
</head>
<body>
  <?php $is_admin = true; ?>
  <?php if ( $is_admin ) : ?>
  <a href="#">Edit</a>
  <?php endif; ?>
  <a href="#">View</a> 
</body>
</html>Linguagem de código:  HTML, XML  ( xml )

Como $is_adminis true, o script mostra o link Editar. Se você alterar o valor de $is_adminpara false, não verá o link Editar na saída.

Um erro comum com a instrução if do PHP

Um erro comum que você pode cometer é usar o operador errado na ifinstrução. Por exemplo:

<?php

$checked = 'on';
if( $checked = 'off' ) {
   echo 'The checkbox has not been checked';
}Linguagem de código:  HTML, XML  ( xml )

Este script mostra uma mensagem se $checked for 'off'. No entanto, a expressão na ifdeclaração é uma atribuição, não uma comparação:

$checked = 'off'Linguagem de código:  PHP  ( php )

Esta expressão atribui a string literal 'off'à $checkedvariável e retorna essa variável. Não compara o valor da $checkedvariável com o 'off'valor. Portanto, a expressão sempre é avaliada como true, o que não é correto.

Para evitar esse erro, você pode colocar o valor primeiro antes do operador de comparação e a variável após o operador de comparação assim:

<?php

$checked = 'on';
if('off' == $checked ) {
   echo 'The checkbox has not been checked';
}Linguagem de código:  HTML, XML  ( xml )

Se você acidentalmente usar o operador de atribuição (=), o PHP irá gerar um erro de sintaxe:

<?php

$checked = 'on';
if ('off' = $checked) {
	echo 'The checkbox has not been checked';
}Linguagem de código:  HTML, XML  ( xml )

Erro:

Parse error: syntax error, unexpected '=' ...Linguagem de código:  JavaScript  ( javascript )

Resumo

  • A ifinstrução executa uma instrução ifque uma condição avalia true.
  • Sempre use chaves, mesmo se você tiver uma única instrução para executar na ifinstrução. Isso torna o código mais óbvio.
  • Use o padrão if ( value == $variable_name ) {}para evitar possíveis erros.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *