初めに
- PHP/Mysqlを使用して1年ほど
- SymfonyやLaravelを半年ずつほど
- PHP初級を取るためにPHP初級問題集、初めてのPHPを読んでいます
概要
いつもif elseを使用してコードを書いているのですが三項演算子というものを見たので自分でも使ってみたくまとめてみました。
1. 三項演算子
そもそも三項演算子って何?と思うので簡単に調べました。
三項演算子は演算子のひとつで3つの項目を使用する唯一の演算子です。
条件式を評価し、TRUEであれば式1、FALSEであれば式2を返します。
条件式 ? 式1 : 式2;
ざっくり、条件が2パターンでのIF文を一文で書けるって認識です。
コードにするとこんな感じ。
$setdate = '1';
//IF文の場合
if($setdate == 1){
$msg1 = 'OK';
}else{
$msg1 = 'NG';
}
print $msg;
//三項演算子の場合
$msg2 = $setdate == '1' ? 'OK' : 'NG';
print $msg2;
OK
OK
便利、、コードの行がすごく減ったので見やすい!!
でも普段IFでネストすることがあるので三項演算子でネストは可能なのか???
調べたらいけるっぽいですね、IFと比べて行は減ったが複雑になってきた気がする。。
(条件式1 ? 真の式1 : (条件式2 ? 真の式2 : 偽の式));
とりあえず使ってみよう!!
$Country = 'JP';
$CountryTop = ($Country == 'USA' ? '米国' : ($Country == 'JP' ? '日本' : '概要なし'));
echo 'あなたの国は、'.$CountryTop;
簡単に米国か日本かを分ける処理を作成してみました。
Countryに省略コードが入るのでUSAであればTRUE「米国」となります、
FALSEの場合は$Country == 'JP'に移り、TRUEであれば「日本」それ以外であれば「該当なし」ななります。
あなたの国は日本
まとめ
- IF文が一行でまとまるので可読性が高い
- ネストも使えるのでより文をまとめたい場合も使用可能
- 使ってみて、要所で使用なら可読性は高まるが三項演算子ばかりでネスト多様をすると逆に可読性は下がると感じた