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 if
instrução permite executar uma instrução se uma expressão for avaliada como true
. O seguinte mostra a sintaxe da if
instrução:
<?php
if ( expression )
statement;
Linguagem de código: HTML, XML ( xml )
Nesta sintaxe, o PHP avalia o expression
primeiro. Se expression
for 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 if
instrução funciona:
O exemplo a seguir usa a if
instrução para exibir uma mensagem se a $is_admin
variável for definida como true
:
<?php
$is_admin = true;
if ($is_admin)
echo 'Welcome, admin!';
Linguagem de código: HTML, XML ( xml )
Como $is_admin
is true
, o script gera a seguinte mensagem:
Welcome, admin!
aparelho encaracolado
Se você deseja executar várias instruções no if
bloco, 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 if
instruçã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 if
instrução exibe uma mensagem e define a $can_edit
variável true
como se a $is_admin
variável for true
.
É uma boa prática sempre usar chaves com a if
instruçã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 if
instrução dentro de outra if
instruçã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 if
instrução em outra if
instruçã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 if
em HTML
Para incorporar uma if
instruçã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 if
instrução que mostra o link de edição se $is_admin
for 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_admin
is true
, o script mostra o link Editar. Se você alterar o valor de $is_admin
para 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 if
instruçã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 $checke
d for 'off'
. No entanto, a expressão na if
declaraçã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'
à $checked
variável e retorna essa variável. Não compara o valor da $checked
variá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
if
instrução executa uma instruçãoif
que uma condição avaliatrue
. - Sempre use chaves, mesmo se você tiver uma única instrução para executar na
if
instrução. Isso torna o código mais óbvio. - Use o padrão
if ( value == $variable_name ) {}
para evitar possíveis erros.