ノーバグノーライフ

細々と記事書いていきます!!

三項演算子は正義ということを伝えたい

どーも!よねしゅーです!

この前三項演算子よりif文の方が分かりやすいと言っていた人がいました。

使い方を間違っているパターンだな

と思ったので僕が思う三項演算子の使い方を書いていこうかなと思います。

目次

  • 三項演算子とは
  • if文とは何が違うのか
  • プログラム書いて説明
  • 使うメリット
  • まとめ

三項演算子とは

まずは三項演算子の説明をします。
三項演算子とは以下のような演算子です。

条件式 ? 式A : 式B

条件式が「true」の場合は式Aを
条件式が「false」の場合は式Bを
返却します。

$hoge = 100;

$fuga = $hoge === 100 ? 200 : 300;

echo $fuga; // 200が出力される。

まぁ例文はこんな感じ!
そして説明はこのくらいで!次!

if文とは何が違うのか

trueとfalseでやることを分岐させてて、
if文と同じじゃないかと思う人もいると思います。

三項演算子は
演算子であって、分岐処理ではありません。

三項演算子は2つの中から一つを選ぶイメージ
if文は分岐した後に複数の処理をこなすイメージ かなと個人的には思っています。

プログラム書いて説明

三項演算子で書いた方が良いと思っているif文

$hoge = 100;
$fuga = ‘’;

if ($hoge === 100) {
    $fuga = ‘A’;
} else {
    $fuga = ‘B’;
}

このように100の場合はAを
100ではない場合はBを代入する
など2つの内どちらかを選ぶパターンは三項演算子の方が見やすくなります。

三項演算子にするとこんな感じ

$hoge = 100;

$fuga = $hoge === 100 ? ‘A’ : ‘B’;

5行あったif文が1行になっていい感じです。

使わない方が良いものは
上記に記載した例以上の処理が入ってきた場合ですかね。

使うメリット

最後に使うメリットです。
正直なところ大きなメリットは2つくらいかなと。

  • 記載行数が減る
  • 初期化処理がいらない

5行あるところを1行でかけるのは素晴らしいことだと思います。
長いプログラムは読みたくないので。

それとスコープの関係上if文の前で変数を一度定義してからif文を書き始めていたのが
スコープが無くなるので必要なくなるというメリットもあります。

まとめ

ここまで色々と書いてきましたが、
伝えたいのは
if文の代用とかではないよ
記載行が圧倒的に減るよ

ということでした。

以上です。 ブログをよくしていきたいので
何かあればコメントいただければと思います。

ありがとうございました。