easy way to execute conditional html / javascript / css / other language code with php if else:
<?php if (condition): ?>
html code to run if condition is true
<?php else: ?>
html code to run if condition is false
<?php endif ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
O construtor if
é um dos recursos mais importantes
em muitas linguagens, inclusive no PHP. Permite a
execução condicional de fragmentos de código. O PHP apresenta uma estrutura
if
semelhante a do C:
if (expr) statement
Como descrito na seção sobre
expressões, expressões são avaliadas por seus
valores Booleanos. Se uma expressão for avaliada como true
,
o PHP executará a declaração, e se avaliá-la
como false
- ignorá-la. Mais informações sobre quais valores são avaliados
como false
pode ser encontrada na seção 'Conversão para booleano'
.
O exemplo a seguir exibirá a is bigger than b se $a for maior que $b:
<?php
if ($a > $b)
echo "a is bigger than b";
?>
Muitas vezes deseja-se que mais de uma declaração seja condicionalmente
executada. É claro que não é necessário envolver cada declaração
em uma cláusula if
. Em vez disso, pode-se agrupar
várias declarações em grupos. Por exemplo, este código
exibirá a is bigger than b
se $a for maior que
$b, e atribuirá o valor de
$a em $b:
<?php
if ($a > $b) {
echo "a is bigger than b";
$b = $a;
}
?>
A declaração If
pode ser aninhada indefinidamente dentro de outras
declarações if
, fornecendo completa flexibilidade
para execução condicional de várias partes do
programa.
easy way to execute conditional html / javascript / css / other language code with php if else:
<?php if (condition): ?>
html code to run if condition is true
<?php else: ?>
html code to run if condition is false
<?php endif ?>
re: #80305
Again useful for newbies:
if you need to compare a variable with a value, instead of doing
<?php
if ($foo == 3) bar();
?>
do
<?php
if (3 == $foo) bar();
?>
this way, if you forget a =, it will become
<?php
if (3 = $foo) bar();
?>
and PHP will report an error.
You can have 'nested' if statements withing a single if statement, using additional parenthesis.
For example, instead of having:
<?php
if( $a == 1 || $a == 2 ) {
if( $b == 3 || $b == 4 ) {
if( $c == 5 || $ d == 6 ) {
//Do something here.
}
}
}
?>
You could just simply do this:
<?php
if( ($a==1 || $a==2) && ($b==3 || $b==4) && ($c==5 || $c==6) ) {
//do that something here.
}
?>
Hope this helps!
An other way for controls is the ternary operator (see Comparison Operators) that can be used as follows:
<?php
$v = 1;
$r = (1 == $v) ? 'Yes' : 'No'; // $r is set to 'Yes'
$r = (3 == $v) ? 'Yes' : 'No'; // $r is set to 'No'
echo (1 == $v) ? 'Yes' : 'No'; // 'Yes' will be printed
// and since PHP 5.3
$v = 'My Value';
$r = ($v) ?: 'No Value'; // $r is set to 'My Value' because $v is evaluated to TRUE
$v = '';
echo ($v) ?: 'No Value'; // 'No Value' will be printed because $v is evaluated to FALSE
?>
Parentheses can be left out in all examples above.
In addition to the traditional syntax for if (condition) action;
I am fond of the ternary operator that does the same thing, but with fewer words and code to type:
(condition ? action_if_true: action_if_false;)
example
(x > y? 'Passed the test' : 'Failed the test')
Any variables defined inside the if block will be available outside the block. Remember that the if doesn't have its own scope.
<?php
$bool = true;
if ($bool) {
$hi = 'Hello to all people!';
}
echo $hi;
?>
It will print 'Hello to all people!'
On the other hand, this will have no output:
<?php
if (false) {
$hi = 'Hello to all people!';
}
echo $hi;
?>
Note that the IF statement does not always evaluates all expressions. In the next example the second expression will not be evaluated causing our function not to run. Because the result is already TRUE and the rest of the expressions are behind the OR operator they will be ignored.
<?php
$a = 0;
if ( true || $a = important_function() ) echo $a;
function important_function(){
// Do very important stuff here.
return 1;
}
?>