UPDATE:2020年07月10日
PHP の 三項演算子(条件演算子)
1 Minute Note
| ? : 三項演算子(条件演算子) |
- (条件式) ? 真の場合の式 : 偽の場合の式;
- 式に対して式を評価する
1 2 3 4 | <?php echo (TRUE) ? '真です' : '偽です'; //真です echo (FALSE) ? '真です' : '偽です'; //偽です ?> |
三項演算子とは
- (条件式) ? 真の場合の式 : 偽の場合の式;
三項演算子(条件演算子) はオペランド(演算子の対象となる値)を3つ使用するPHP唯一の条件演算子です「1つ目の式 ? 2つ目の式 : 3つ目の式 ;」。三項演算子「 ? : 」は「 ? 」の左辺の式を評価し、結果が「真(TRUE)」の場合は「:」の左辺の式の値を返し、「偽(FALSE)」の場合は「:」の右辺の式の値を返します。式に対して式を評価します。
PHPの式についてはこちらを参照下さい。
条件演算子の詳細は制御文の条件演算子を参照下さい。
| 演算子 | 名前 | 優先順位 | 結合時の評価 | 例 | 結果 |
|---|---|---|---|---|---|
| ? : | 三項演算子 条件演算子 | 1 | left | $a ? $b : $c | $a が TRUE の場合に $b FALSE の場合に $c。 |
例
条件式 (1) は「真」と評価されます。「?」の式の値を返します。
1 2 3 4 | <!-- サンプルコード --> <?php echo (1) ? 'TRUE' : 'FALSE'; ?> |
結果は
となります。
- 表示なし
- キーワード FALSE
- 整数 0 と -0
- 浮動小数点 0.0 と -0.0
- 空の文字列 "" や ''
- 文字列としての0 "0"
- 要素数が 0 の配列 $aValue= array();
- プロパティーはメソッドを含まない空のオブジェクト
- NULL値
- 値が定義されていない変数
例
条件式 (1 == 1) は「真」と評価されます。「?」の式の値を返します。
1 2 3 4 | <!-- サンプルコード --> <?php echo (1 == 1) ? 'TRUE' : 'FALSE'; ?> |
結果は
となります。
例
条件式 (1 == 2) は「偽」と評価されます。「:」の式の値を返します。
1 2 3 4 | <!-- サンプルコード --> <?php echo (1 == 2) ? 'TRUE' : 'FALSE'; ?> |
結果は
となります。
例
条件式 ($a === $b) は「真」と評価されます。「?」の式の値を返します。
1 2 3 4 5 6 | <!-- サンプルコード --> <?php $a = 10; $b = 10; echo ($a === $b) ? $a*$b : $a/$b; ?> |
結果は
となります。
フォームを利用した問題形式の例
フォームを利用し、漢字の読みの問題を 条件演算子 を使用して作成したサンプルです。
question.php
1 2 3 4 5 6 7 8 | <form action="answer.php" method="post"> ●問題1:「陸蓮根」の読み<br> <input type="text" name="q1" size="30"><br> ●問題2:「鹿尾菜」の読み<br> <input type="text" name="q2" size="30"><br> <br> <input type="submit" value="回答する"> </form> |
answer.php
1 2 3 4 | ●問題1:「陸蓮根」の読み<br> <?php echo ($_POST['q1'] == 'おくら') ? '正解です。' : '不正解です。'; ?> (答え:おくら)<br> ●問題2:「鹿尾菜」の読み<br> <?php echo ($_POST['q2'] == 'ひじき') ? '正解です。' : '不正解です。'; ?> (答え:ひじき)<br> |
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!-- サンプルコード --> <h3>条件演算子(三項演算子)</h3> <?php echo (1) ? 'TRUE'."<br>\n" : 'FALSE'."<br>\n"; echo (1 == 1) ? 'TRUE'."<br>\n" : 'FALSE'."<br>\n"; echo (1 == 2) ? 'TRUE'."<br>\n" : 'FALSE'."<br>\n"; $a = 10; $b = 10; echo ($a === $b) ? $a*$b."<br>\n" : $a/$b."<br>\n"; ?> |
TRUE
TRUE
FALSE
100
フォームを利用した問題形式の例
フォームを利用し、漢字の読みの問題を 条件演算子 を使用して作成したサンプルです。
question.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>問題</title> </head> <body> <form action="answer.php" method="post"> ●問題1:「陸蓮根」の読み<br> <input type="text" name="q1" size="30"><br> ●問題2:「鹿尾菜」の読み<br> <input type="text" name="q2" size="30"><br> <br> <input type="submit" value="回答する"> </form> </body> </html> |
answer.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>回答</title> </head> <body> ●問題1:「陸蓮根」の読み<br> <?php echo ($_POST['q1'] == 'おくら') ? '正解です。' : '不正解です。'; ?> (答え:おくら)<br> ●問題2:「鹿尾菜」の読み<br> <?php echo ($_POST['q2'] == 'ひじき') ? '正解です。' : '不正解です。'; ?> (答え:ひじき)<br> </body> </html> |
タグ(=記事関連ワード)
日付
最終更新日:2020年07月10日



