PHPのif文のサンプルです。
| 確認環境 ・PHP 7.2.8 |
目次
if文
| if (条件){ 処理 } elseif (条件) { 処理 } else { 処理 } |
- 条件がtrueの場合、配下のブロック{ }の処理が実行され、if文の処理は終了します。
- 条件がfalseの場合、配下のブロック{ }の処理は実行されず、その下(else if/else)に進みます。
- else ifは、1つ以上記述できます。省略可。
- elseのブロック{ }の処理は、どの条件もtrueでなかったときに実行されます。
- elseは、1つのみ記述できます。省略可。
- 以下はPHPのマニュアルのif文のリンクです。
http://php.net/manual/ja/control-structures.if.php
コード
if文のサンプルです。
<?php
$num = 2;
if ($num === 0) {
echo "0";
} elseif ($num === 1) {
echo "1"; //1が表示される
} elseif ($num === 2) {
if($num === 2) {
echo "2"; //
}
} else {
echo "その他";
}
?>
7行目のelseifの条件式を満たすので1が表示されます。
11行目のように、else if文の中にif文を記述することができます。入れ子の構造です。
if文の別の記述方法
if文の別の記述方法です。
HTMLに記述する時などに使われます。
<?php $num = 1;?>
<?php if ($num === 0): ?>
<p>0が入力されました</p>
<?php else: ?>
<p>その他が入力されました</p>
<?php endif; ?>
3,6行目は、後方にコロン:がついています。
9行目は、最後の箇所にendifがあります。if文の終わりが、わかりやすくなります。
比較演算子
上記コードの===は比較演算子です。
比較演算子は、2つの値を比べて真偽値(true/false)を返します。
条件を満たしていればtrue,そうでない場合はfalseです。
| 比較演算子 | 説明 |
|---|---|
| a == b | aとbの値は等しい |
| a === b | aとbの値は等しい かつ 型も等しい |
| a != b | aとbの値は等しくない |
| a <> b | aとbの値は等しくない |
| a !== b | aとbの値は等しくない または 型が等しくない |
| a > b | aはbより大きい |
| a >= b | aはbより大きい または 等しい |
| a < b | aはbより小さい |
| a <= b | aはbより小さい または 等しい |
- 以下はPHPのマニュアルの比較演算子のリンクです。
http://php.net/manual/ja/language.operators.comparison.php
論理演算子の論理積(&&)
- if文で論理積(&&)を使用する場合、論理積(&&)の左の式と右の式の両方が条件に合致する場合にtrueになります。
- 論理積の左の式がfalseの場合、右の式は評価されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
- 以下はPHPのマニュアルの論理演算子のリンクです。
http://php.net/manual/ja/language.operators.logical.php
コード
論理積のサンプルです。
<?php
$num = 6;
if ($num % 2 === 0 && $num < 10){
echo "OK"; //OKが表示される
} else {
echo "NG";
}
?>
4行目は、偶数かつ10より小さい場合にtrueになります。
→OKが表示されます。
論理演算子の論理和(||)
- if文で論理和(||)を使用する場合、論理和(||)の左の式または右の式のどちらかが条件に合致する場合にtrueになります。
- 論理和の左の式がtrueの場合、右の式は評価されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
- 以下はPHPのマニュアルの論理演算子のリンクです。
http://php.net/manual/ja/language.operators.logical.php
コード
論理和のサンプルです。
<?php
$num = 9;
if ($num % 2 === 0 || $num < 10){
echo "OK"; //OKが表示される
} else {
echo "NG";
}
?>
4行目は、偶数または10より小さい場合にtrueになります。
→OKが表示されます。
論理積と論理和の演算子の注意点
論理積の演算子は、&&とandの2つがあり、論理和は、||とorの2つがあります。
演算子の優先順位は&&と||の方が高く、andとorは低いです。
そのため、&&、and、||、orを混在して使用しないほうが良いです。
基本は、&&と||を使用します。
以下は、参考のリンクです。
http://php.net/manual/ja/language.operators.precedence.php
https://teratail.com/questions/313
論理演算子の否定(!)
- !aとした場合、aがfalseの場合にtrueになり、aがtrueの場合にfalseになります。
コード
論理否定のサンプルです。
<?php
$num = 9;
if (!($num === 1)) {
echo "test1"; //test1が表示される
}
if (!($num === 9)) {
echo "test2";
} else {
echo "test3"; //test3が表示される
}
?>
4行目はnumと1の比較でfalseになり、それを!で否定して条件式はtrueになります。
8行目はnumと9の比較でtrueになり、それを!で否定して条件式はfalseになります。
関連の記事
PHP while文とdo…while文のサンプルのサンプル
PHP 配列の値をループで取得するサンプル(foreach文)
PHP 関数のサンプル
PHP エスケープシーケンスのサンプル