UPDATE:2017年03月22日
PHP 条件演算子(三項演算子)「? :」
1 Minute Note
- 「もし ~ なら ・・ する そうでなければ * * する」
(条件式 ~ ) ? 真式 ・・ : 偽式 * *
- 条件式を評価し結果が「真(TRUE)」の場合は「?」の右辺の 式 を評価し、「偽(FALSE)」の場合は「:」の右辺の 式 を評価する
- 条件式の結果は論理型で得る
- 条件式の結果、文を実行するのではなく、式を評価することに注意
- 複数の式を使うことはできない
条件演算子(三項演算子)
- 「もし ~ なら ・・ する そうでなければ * * する」
(条件式 ~ ) ? 真式 ・・ : 偽式 * *
- 条件式を評価し結果が「真(TRUE)」の場合は「?」の右辺の 式 を評価し、「偽(FALSE)」の場合は「:」の右辺の 式 を評価する
- 条件式の結果は論理型で得る
- 条件式の結果、文を実行するのではなく、式を評価することに注意
- 複数の式を使うことはできない
条件演算子「? :」は、PHP唯一の三項演算子です。三項演算子とは被演算子(演算の対象となる値)を3つとる演算子のことです。
構文は
(条件式 ~ ) ? 真式 ・・ : 偽式 * *
となります。
式(条件式)を評価して、結果が「真(TRUE)」の場合は「?」の右辺の式を評価し、「偽(FALSE)」の場合は「:」の右辺の式を評価します。
「 if(式)文 else 文 」との大きな違いは、式の結果を受け実行するのが文ではなく式ということです。式に対して式を評価します。また、複数の式を使うことはできません。
PHPにおいて式とは、値があるもののことを言います。最も簡単な式は「リテラル値」や「定数」や「変数」です。例えば、「1」 とは 「1」 という値を持つ式となります。文字列の場合も「'Hello'」は「Hello」という値を持つ式です。これらは数値のリテラル値や文字列のリテラル値としてPHPから評価されます。
1 2 3 4 5 | <!-- サンプルコード --> <?php echo (1) ? "こんにちは<br>\n" : "さようなら<br>\n"; echo (0) ? "こんにちは<br>\n" : "さようなら<br>\n"; ?> |
結果は
さようなら
となります。
「1」「0」「"こんにちは<br>\n"」「"さようなら<br>\n"」これはら値そのものを持つ式と評価されます。最も簡単な式の「リテラル値」としての扱いです。
PHPの式の詳細はこちらを参照下さい。
使用例
例
1 2 3 4 | <!-- サンプルコード --> <?php echo (1) ? 'TRUEです。' : 'FALSEです。'; ?> |
結果は
となります。
例の整数値「1」は1という値を出力する単純な式です。PHPではFALSEと見なされる以外はすべてTRUEと評価されます。「1」は式であり、「真(TRUE)」の論理値を返します。「'TRUEです。'」や「'FALSEです。'」は文字列の値を持つ式と評価されます。これらは最も単純な式である数値リテラルや文字列リテラルのリテラル値です。
例
1 2 3 4 | <!-- サンプルコード --> <?php echo (1 === 1) ? 'TRUEです。' : 'FALSEです。'; ?> |
結果は
となります。
例は比較演算子「===」を使用した真偽を求める式です。「===」は同一である場合に「真(TRUE)」を返します。この演算子は左辺と右辺のデータ型が同じであるかも調べます。演算子を使用すると値と値を組み合わせて複雑な式を作ることができます。演算子についてはこちらを参照下さい。
例
1 2 3 4 | <!-- サンプルコード --> <?php echo (1 > 2) ? 'TRUEです。' : 'FALSEです。'; ?> |
結果は
となります。
例は比較演算子「>」を使用した真偽を求める式です。「>」は左辺が右辺より大きい場合に「真(TRUE)」を返します。
例
1 2 3 4 5 6 | <!-- サンプルコード --> <?php $a = 10; $b = 10; echo ($a === $b) ? $a*$b : $a/$b; ?> |
結果は
となります。
例は比較演算子「===」を使用した真偽を求める式です。「*」と「/」は算術演算子の乗算(掛ける)と除算(割る)です。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <!-- サンプルコード --> <h3>条件演算子</h3> <?php echo (1) ? 'TRUE です。' : 'FALSE です。'; ?> <h3>条件演算子</h3> <?php echo (1 == 1) ? 'TRUE です。' : 'FALSE です。'; ?> <h3>条件演算子</h3> <?php echo (1 == 2) ? 'TRUE です。' : 'FALSE です。'; ?> <h3>条件演算子</h3> <?php $a = 10; $b = 10; echo ($a === $b) ? $a*$b : $a/$b; ?> |
TRUE です。
条件演算子
TRUE です。
条件演算子
FALSE です。
条件演算子
100
タグ(=記事関連ワード)
日付
最終更新日:2017年03月22日