if文を1行で書く
次の内容をif文で書いてみましょう。
数値型の変数$numの値が10以上の場合、変数$labelに文字列「YES」を代入する。
そうでなければ、変数$labelに文字列「NO」を代入する。
次のようになります(※注1)。
if($num >= 10) { $label = 'YES'; } else { $label = 'NO'; }
では、これを1行で書いてみてください。
実はPHPプログラムは次のように1行で書くこともできます。
if($num >= 10) { $label = 'YES'; } else { $label = 'NO'; }
この書き方は正しいです。
ただ、プログラムが横に長いです(笑)
このような場合は「三項演算子」を使うと、シンプルに記述することができます。
三項演算子とは
三項演算子は、「?」と「:」を使って、シンプルに条件分岐をする記述方法です。
構文は次の通りです。
<構文>
変数A = 条件1 ? 値a : 値b;
「条件1」を判定し、「条件1」がtrueの場合の値は「値a」を、falseの場合は「値b」を「変数A」に代入します。
この三項演算子を使うと、最初のPHPプログラムは次のように記述することができます。
$label = ($num >= 10) ? 'YES' : 'NO';
「$num >= 10」を判定し、trueの場合は「YES」を、falseの場合は「NO」を変数$labelに代入します。
サンプルプログラム
いくつかサンプルプログラムを書きます。
サンプルプログラム1
<?php $num = 20; $label = ($num >= 10) ? 'YES' : 'NO'; echo $label;
<実行結果>
YES
変数$numの値は20であるため、「$num >= 10」はtrueになります。結果、「YES」が変数$labelに代入されます。
サンプルプログラム2
<?php $color = 'red'; $action = ($color === 'blue') ? 'GO' : 'STOP'; echo $action;
<実行結果>
STOP
変数$colorの値は「red」であるため、「$color === 'blue'」はfalseになります。結果、「NO」が変数$actionに代入されます。
おわりに
三項演算子はif文で書くことができますが、三項演算子を使った方が、プログラムの行数が減り見やすくなるので、必要に応じて使いましょう。
PHPプログラミング入門講座 〜 全記事一覧 〜
- PHPで開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 現在のページ:三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理