if文とは
様々なプログラミング言語では条件分岐の1つであるif文が使われる。
以下のように使うことができる。
function sort(string $dir, array $arr): array {
if($dir == 'R'){
sort($arr);
}else{
rsort($arr);
}
return $arr;
}
上記では$dir
という文字列が'R'であれば$arr
配列の中身を昇順に並び替え,'R'以外であれば降順に並び替える処理を行う。if文を使用すると8行のコードを書く必要があるが、三項演算子を使用することで簡潔に書ける場合もある。
三項演算子とは
三項演算子は演算子のひとつで3つの項目を使用する唯一の演算子である。書式は次の通り。
条件式 ? 式1 : 式2
条件式を評価し、TRUEであれば式1、FALSEであれば式2を返す。また、三項演算子の短縮形として?:
も存在する。
三項演算子を "積み重ねて" 使用することは避けましょう。 ひとつの文の中で括弧で囲わずに複数の三項演算子を使用した際の PHP の振る舞いは、 他のプログラミング言語のそれと比べて、少々わかりにくいものです。 PHP 8.0.0 より前のバージョンでは、三項演算子は左から右に評価されていました。 他の殆どのプログラミング言語では、右から左に評価されます。 左から右に評価される振る舞いに依存することは、PHP 7.4.0 以降は推奨されません。 PHP 8.0.0 以降は、三項演算子はどの演算とも結合しなくなっています。
参照
三項演算子の書き方
if文で書いた処理を三項演算子で書き直すと以下のようになる。
function sort(string $dir, array $arr): array {
$dir == 'R' ? sort($arr): rsort($arr);
return $arr;
}
三項演算子を用いることで行数が半分になった。
最後に
他の方も同じソースコードを触ることを考え,より分かりやすく簡潔なコードを作成することを心掛けていきたい。その手法の1つとして三項演算子を使っていこうと思う。