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 では、C 言語に似た次のような if
構文が使用されます。
if (式) 文
式のセクションで
記述したように式は論理値で評価されます。
式が true
と評価された場合、
PHP は文を実行します。false
と評価された場合は、これを無視します。どのような値が
false
と評価されるかについては論理値への変換
を参照ください。
以下の例は、$a が $b より大きい場合、aはbより大きい を表示します。
<?php
if ($a > $b)
echo "aはbより大きい";
?>
条件分岐させたい文が一つ以上ある場合もしばしばあります。
もちろん、各々の文をif
文で括る必要はありません。
代わりに、複数の文をグループ化することができます。
例えば、このコードは、$a
が $b よりも大きい場合に
aはbよりも大きいを表示し、
$a の値を $b に
代入します。
<?php
if ($a > $b) {
echo "aは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 ?>
Left-to-right evaluation of && operators has one useful feature: evaluation stops after first "false" operand is encountered. This feature can be useful for creating following construction:$someVar==123 is not evaluated, so there will be no warnings such as "Undefined variable $someVar":<?php// $someVar=123; - commented lineif ((!empty($someVar))&&($someVar==123)){ echo $someVar;}?>Function someFunc($someVar) will not be called:<?php// $someVar=123; - commented lineif ((!empty($someVar))&&(someFunc($someVar))){ echo $someVar;}?>This will give "Warning: Undefined variable $someVar" error. Order matters:<?php// $someVar=123;if ((someFunc($someVar))&&(!empty($someVar))){ echo $someVar;}?>
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: #80305Again useful for newbies:if you need to compare a variable with a value, instead of doing<?phpif ($foo == 3) bar();?>do<?phpif (3 == $foo) bar();?>this way, if you forget a =, it will become<?phpif (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.