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)
if
结构是很多语言包括 PHP
在内最重要的特性之一,它允许按照条件执行代码片段。PHP 的
if
结构和 C 语言相似:
<?php if (expr) statement ?>
如同在表达式一章中定义的,expr
按照布尔求值。如果 expr
的值为 true
,PHP 将执行 statement,如果值为
false
——将忽略 statement。有关哪些值被视为
false
的更多信息参见转换为布尔值一节。
如果 $a 大于 $b,则以下例子将显示 a is bigger than b:
<?php
if ($a > $b)
echo "a is bigger than b";
?>
经常需要按照条件执行不止一条语句,当然并不需要给每条语句都加上一个
if
子句。可以将这些语句放入语句组中。例如,如果
$a 大于 $b,以下代码将显示
a is bigger than b 并且将
$a 的值赋给 $b:
<?php
if ($a > $b) {
echo "a is bigger than b";
$b = $a;
}
?>
if
语句可以无限层地嵌套在其它
if
语句中,这给程序的不同部分的条件执行提供了充分的弹性。
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 ?>
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!
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.
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.
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;
?>
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')
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;
}
?>