三項演算子とは、if文の親戚的な何かであると耳にしたことのある人は多いかと思います。
プログラミング言語には大抵三項演算子が使える仕様になっています。
この三項演算子がしてくれる事と言えば、
1、条件式を作る
2、条件式に合致すればAの処理をする
3、条件式に合致しないのならBの処理をする
と言った事をしてくれるのです。
しかしここで疑問が幾つか湧き出ました。
「これって、IF文と何が違うんだ?」
「具体的にどこで使うんだ?」
ここではそんな疑問に答えていこうと思います。
ところで何故タイトルに【PHP】だなんて入れたんだ?と思うかも知れませんが、これは中の解説で使う言語がPHPだからで、ここでの解説は別に他の言語でも通じる話かと思います。
三項演算子の使いどころは「真」「偽」で処理する時
まず簡単に言えば、if文より短く書ける場合に使う事があります。
1つの例として、if文の場合こんな感じに記述をしたとしましょう。
$hoge = 1;
if($hoge === 1){
$hoge = "1です";
}else{
$hoge = "1ではないです";
};
echo $hoge;
これはつまり、
- $hogeに「1」を代入
- $hogeの中身が1の時には「1でした」と代入
- $hogeの中身が1以外の時は「1ではないです」と代入
- $hogeの中身を出力する
というソースコードです。
IF文の場合、プログラムを見やすくするために、インデント(改行)はなるべく利用したいですからどうしても縦に長いコードになります。
そこで三項演算子の出番という訳です。
上記と同じコードをここまで小さく表現できます。
$hoge = 1;
$hoge = $hoge === 1 ? "これは1です":"これは1ではありません";
echo $hoge;
これが上記のコードと同じ結果を産むと言えば、効率的な書き方である事が解るかと思います。
ちなみに三項演算子とはどのような書き方なのか解説すると、
条件式 ? 真の場合の出力 : 偽の場合の出力;
条件式に「何が”真”か?」を定義すれば、後は"?"以降の構文が出力を振り分けてくれます。
まとめ
つまり、三項演算子は「真」「偽」で出力を変えたい時に、if文よりより労力をかけずにソースコードを完成させられる仕組みなのです。
三項演算子の使い方を具体的に考え直してみると、
・正しいか間違いかの処理
・AかBのいずれかしかない処理
・ON/OFFの切り替えスイッチ的な処理
・合格か不合格か判定する処理
と言ったものに使えそうです。