UPDATE:2019年05月15日
PHP elseif 文/else if 文
elseif文 簡単まとめ
- 「もし ~ なら ・・ する そうでなく、もし * * なら -- する」もし * * なら -- する が elseif文if (式 ~ ) 文・・ elseif (式 * * ) 文--123456if(FALSE) echo 'if式真です。'; elseif(TRUE) echo 'elseif式真です。';//elseif式真です。$a = 1; $b = 2;if($a == $b) echo '$aと$bは等しい。'; elseif($a != $b) echo '$aと$bは等しくない。';//$aと$bは等しくない。
- elseif文 は if文 の拡張で式と文の追加
- 最初のif文の式の結果が「偽(FALSE)」の場合、elseif文の式を評価して「真(TRUE)」の場合に文を実行する 「偽(FALSE)」の場合に文は無視される 式 詳しくはこちら
- if文やelseif文の式の結果は論理型で得る 論理型 詳しくはこちら
- 文が複数ある場合は文を「{ }(ブロック)」で囲むif (式 ~ )
文・・
elseif (式 * * ) {
文--
文--
文--
}1234567891011121314151617if(FALSE)echo 'if式真です。';elseif(TRUE) {echo 'elseif式';echo '真';echo 'です。';}//elseif式真です。$a = 1; $b = 2;if($a == $b)echo '$aと$bは等しい。';elseif($a != $b) {echo '$aと$b';echo 'は等しくない。';}//$aと$bは等しくない。 - 前にある全てのif文とelseif文の式の値が「偽(FALSE)」であり、現在のelseif文の式の値が「真(TRUE)」である場合にのみ実行されるif (式 ~ ) 文・・
elseif (式 * * ) 文--
elseif (式 * * *) 文---
elseif (式 * * * *) 文----12345if(FALSE) echo 'if式真です。';elseif(FALSE) echo 'elseif式1真です。';elseif(FALSE) echo 'elseif式2真です。';elseif(TRUE) echo 'elseif式3真です。';//elseif式3真です。 - 前にある全てのif文とelseif文の式の値が「偽(FALSE)」の場合にelse文が実行されるif (式 ~ ) 文・・
elseif (式 * * ) 文--
elseif (式 * * *) 文---
else 文----12345if(FALSE) echo 'if式真です。';elseif(FALSE) echo 'elseif式1真です。';elseif(FALSE) echo 'elseif式2真です。';else echo 'elseです。';//elseです。 - elseif文はif文の中に幾らでも記述できるif (式 ~ ) {
if (式 * ) 文-
elseif (式 * * ) 文--
elseif (式 * * *) 文---
} - ※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード
elseif文とは
elseif文は、最初のif文の式の結果が「偽(FALSE)」の場合に、別の文を実行するために、式と文を追加し、if文を拡張します。
elseif文はif文と同じように、ある式の値が「真(TRUE)」であるかどうかを調べます。式の値が「真(TRUE)」である場合に文を実行します。「偽(FALSE)」の場合は文は無視されます。
日本語にすると「もし ~ なら ・・ する そうでなく、もし * * なら - - する」ということになります。「 ~ と ・・ 」は最初のif文、「 * * 」と「 - - 」は次に続くelseif文です。
if(式 ~ ) 文 ・・ elseif( 式 * * ) 文 - - //文が1つの場合は改行しても大丈夫 if(式 ~ ) 文 ・・ elseif(式 * * ) 文 - -
「elseif」は2単語で「else if」と記述することができ、両方とも動作は全く同じです。
※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード
if文についてはこちらを参照下さい。
1 2 3 | <!-- サンプルコード --><?php echo 'Hello '; echo 'World!!'; ?> |
これは文が2つあることになります。
if文やelseif文はある式の値の「真(TURE)」「 偽(FALSE)」を調べます。従って、elseif文の式の結果は「真(TURE)」と「偽(FALSE)」の論理型で得る必要があります。そのため、式には「比較演算子」や「論理演算子」など使用するなどして論理値の「真(TRUE)」「偽(FALSE)」の値を返す式を作ります。
比較演算子は「if(10 == 10)」の「==」などです。論理演算子は「if((10 == 10) and (20 == 20))」の and などです。演算子についてはこちらを参照下さい。論理型についてはこちらを参照下さい。
例
1 | if(FALSE) echo 'if式偽'; elseif(TRUE) echo 'elseif式真';//elseif式真 |
1 2 3 4 5 | <?php $i = 20; if($i == 10) echo '$aの値は10です。'; elseif($i == 20) echo '$aの値は20です。'; ?> |
結果は
となります。
構文 elseif文 と 例
- 「もし ~ なら ・・ する そうでなく、もし * * なら -- する」
if(式 ~ ) 文 ・・ elseif( 式 * * ) 文 - -
- 文が複数ある場合は文を「{ }(ブロック)」で囲む
if(式 ~ ) 文 ・・ elseif(式 * * ){ 文 ・・ 文 ・・ 文 ・・ }
elseif文の基本構文
if(式 ~ ) 文 ・・ elseif( 式 * * ) 文 - - //文が1つの場合は改行しても大丈夫 if(式 ~ ) 文 ・・ elseif(式 * * ) 文 - -
最初のif文の式の結果が「偽(FALSE)」の場合、elseif文の式を評価し、式の結果が「真(TRUE)」である場合に、文を実行します。elseif文の式の結果が「偽(FALSE)」であれば処理は実行せずに文は無視されます。
例
1 2 3 4 5 6 7 | <!-- サンプルコード --> <?php if(0) echo 'if TRUEです。'; elseif(1) echo 'elseif TRUEです。'; ?> |
結果は
となります。
例は最初のif文の式が「偽(FALSE)」なのでif文の文が無視されます。次に、elseif文の式が評価され、「真(TRUE)」なのでelseif文の文が実行されます。
例の「0」はPHPでFALSEと見なされる値です。整数値「1」は1という値を出力する単純な式です。PHPではFALSEと見なされる以外はすべてTRUEと評価されます。「1」は式であり、「真(TRUE)」の論理値を返し、「echo」の文が実行されます。
文が複数ある場合は「{ }(ブロック)」で括る
if(式) 文 elseif(式){ 文 文 文 }
elseif文の文が複数ある場合は、文を「{ }(ブロック)」で括ります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!-- サンプルコード --> <?php $a = 1; $b = 0; if ($a and $b) { echo "aとbはTRUEです。<br>\n"; echo '$aは:'.$a."<br>\n"; echo '$bは:'.$b."<br>\n"; } elseif ($a or $b) { echo "aかbどちらかがTRUEです。<br>\n"; echo '$aは:'.$a."<br>\n"; echo '$bは:'.$b."<br>\n"; } ?> |
結果は
$aは:1
$bは:0
となります。
最初の例と同じようにif文の式は偽でありelseif文の式が真であるのでelseif文の文が実行されます。
この例は論理演算子「and」「or」を使用した真偽を求める式です。「and」は右辺と左辺が「真(TRUE)」である場合に「真(TRUE)」を返します。「or」は右辺か左辺のどちらかが「真(TRUE)」である場合に「真(TRUE)」を返します。
構文 複数のelseif文 と 例
- 前にある全てのif文とelseif文の式の値が「偽(FALSE)」であり、現在のelseif文の式の値が「真(TRUE)」である場合にのみ実行される
if(式 ~ ) 文 ・・ elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- elseif(式 * * * * ) 文 ----
if文の中に、複数のelseif文を使用することができます。最初に「真(TRUE)」と評価されたelseif文の文を実行します。elseif文は、前にある全てのif文とelseif文の式の値が「偽(FALSE)」であり、現在のelseif文の式の値が「真(TRUE)」である場合にのみ実行されます。
if(式 ~ ) 文 ・・ elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- elseif(式 * * * * ) 文 ---- //文が1つの場合は改行しても大丈夫 if(式 ~ ) 文 ・・ elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- elseif(式 * * * * ) 文 ----
例
1 2 3 4 5 6 7 8 9 10 11 | <!-- サンプルコード --> <?php $a = TRUE; $b = FALSE; if($a and $b) echo '両方TRUEです。'; elseif($a xor $b) echo 'TRUEがあり、両方TRUEではありません。'; elseif($a or $b) echo 'TRUEがあります。'; ?> |
結果は
となります。
例はif文とelseif文で最初に「真(TRUE)」となる式の文を実行します。
例は論理演算子「and」「or」「xor」を使用した真偽を求める式です。「and」は左辺と右辺が「真(TRUE)」である場合に「真(TRUE)」を返します。「or」は左辺と右辺のどちらかが「真(TRUE)」である場合に「真(TRUE)」を返します。「xor」は左辺と右辺のどちらかが「真(TRUE)」で、かつ、両方 が「真(TRUE)」でない場合に「真(TRUE)」を返します。
構文 if文とelseif文とelse文 と 例
- 前にある全てのif文とelseif文の式の値が「偽(FALSE)」の場合にelse文が実行される
if(式 ~ ) 文 ・・ elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- else 文 ----
すべての式が「偽(FALSE)」の場合に、else文が実行されます。
if(式 ~ ) 文 ・・ elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- else 文 ---- //文が1つの場合は改行しても大丈夫 if(式 ~ ) 文 ・・ elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- else 文 ----
例
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!-- サンプルコード --> <?php $a = FALSE; $b = FALSE; if($a and $b) echo '両方TRUEです。'; elseif($a xor $b) echo 'TRUEがあり、両方TRUEではありません。'; elseif($a or $b) echo 'TRUEがあります。'; else echo '両方FALSEです。'; ?> |
結果は
となります。
例は論理演算子「and」「or」「xor」を使用した真偽を求める式です。「and」は左辺と右辺が「真(TRUE)」である場合に「真(TRUE)」を返します。「or」は左辺と右辺のどちらかが「真(TRUE)」である場合に「真(TRUE)」を返します。「xor」は左辺と右辺のどちらかが「真(TRUE)」で、かつ、両方 が「真(TRUE)」でない場合に「真(TRUE)」を返します。
構文 elseif文の入れ子(ネスト) と 例
- elseif文はif文の中に幾らでも記述できる
if(式 ~ ){ if(式 * ) 文 - elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- elseif(式 * * * * ) 文 ---- }
elseif文はif文の中に幾らでも記述することが出来ます。ネスト(入れ子)が可能です。
if(式 ~ ){ if(式 * ) 文 - elseif(式 * * ) 文 -- elseif(式 * * * ) 文 --- elseif(式 * * * * ) 文 ---- } //文が1つの場合は改行しても大丈夫 if(式 ~ ){ if(式 * ) - 文 elseif(式 * * ) -- 文 elseif(式 * * * ) --- 文 elseif(式 * * * * ) ---- 文 }
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- サンプルコード --> <?php $a = 1; $b = 2; $c = 2; if ($a < $b){ if($b < $c) echo '$aより$bは大きい。$bより$cは大きい。'; elseif($b > $c) echo '$aより$bは大きい。$bは$cより大きい。'; elseif($b === $c) echo '$aより$bは大きい。$bと$cは同一である。'; } ?> |
結果は
となります。
例は比較演算子「<」「>」「===」を使用した真偽を求める式です。「<」は左辺より右辺が大きい場合に「真(TRUE)」を返します。「>」は左辺が右辺より大きい場合に「真(TRUE)」を返します。「===」は右辺と左辺が同一の場合に「真(TRUE)」を返します。「===」はデータ型が同じであるかのチェックも行います。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <!-- サンプルコード --> <h3>簡単なelseif文</h3> <?php if (0) echo 'if TRUE です。'; elseif (1) echo 'elseif TRUE です。'; ?> <h3>elseif文 比較演算子</h3> <?php $a = 1; $b = 2; if ($a === $b) echo 'aとbは同一です。'; elseif ($a !== $b) echo 'aとbは同一ではありません。'; ?> <h3>複数のelseif文 論理演算子</h3> <?php $a = TRUE; $b = FALSE; if($a and $b) echo '両方TRUEです。'; elseif($a xor $b) echo 'TRUEがあり、両方TRUEではありません。'; elseif($a || $b) echo 'TRUEがあります。'; ?> <h3>if文とelseif文とelse</h3> <?php $a = FALSE; $b = FALSE; $c = FALSE; if($a) echo 'aはTRUEです。'; elseif($b) echo 'bはTRUEです。'; elseif($c) echo 'cはTRUEです。'; else echo 'a b c はすべてFALSEです。'; ?> <h3>elseif文の文を「{・・}ブロック」で記述</h3> <?php $a = 1; $b = 0; if ($a and $b) { echo '$aは:'.$a; echo '<br>'; echo '$bは:'.$b; } elseif ($a || $b) { echo '$aは:'.$a; echo '<br>'; echo '$bは:'.$b; } ?> <h3>elseif文のネスト(入れ子)</h3> <?php $a = 1; $b = 2; $c = 2; if ($a < $b){ if($b < $c) echo '$aより$bは大きい。$bより$cは大きい。'; elseif($b > $c) echo '$aより$bは大きい。$bは$cより大きい。'; elseif($b === $c) echo '$aより$bは大きい。$bと$cは同一である。'; } ?> |
elseif TRUEです。
elseif文 比較演算子
aとbは同一ではありません。
複数のelseif文 論理演算子
TRUEがあり、両方TRUEではありません。
if文とelseif文とelse
a b c はすべてFALSEです。
elseif文の文を「{・・}ブロック」で記述
$aは:1
$bは:0
elseif文のネスト(入れ子)
$aより$bは大きい。$bと$cは同一である。
タグ(=記事関連ワード)
日付
最終更新日:2019年05月15日