0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHP】三項演算子

Last updated at Posted at 2024-04-30

if文とは

様々なプログラミング言語では条件分岐の1つであるif文が使われる。
以下のように使うことができる。

PHP
function sort(string $dir, array $arr): array {
  if($dir == 'R'){
    sort($arr);
  }else{
    rsort($arr);
  }
  return $arr;
}

上記では$dirという文字列が'R'であれば$arr配列の中身を昇順に並び替え,'R'以外であれば降順に並び替える処理を行う。if文を使用すると8行のコードを書く必要があるが、三項演算子を使用することで簡潔に書ける場合もある。

三項演算子とは

三項演算子は演算子のひとつで3つの項目を使用する唯一の演算子である。書式は次の通り。

PHP
条件式 ? 1 : 2

条件式を評価し、TRUEであれば式1、FALSEであれば式2を返す。また、三項演算子の短縮形として?:も存在する。

三項演算子を "積み重ねて" 使用することは避けましょう。 ひとつの文の中で括弧で囲わずに複数の三項演算子を使用した際の PHP の振る舞いは、 他のプログラミング言語のそれと比べて、少々わかりにくいものです。 PHP 8.0.0 より前のバージョンでは、三項演算子は左から右に評価されていました。 他の殆どのプログラミング言語では、右から左に評価されます。 左から右に評価される振る舞いに依存することは、PHP 7.4.0 以降は推奨されません。 PHP 8.0.0 以降は、三項演算子はどの演算とも結合しなくなっています。

参照

三項演算子の書き方

if文で書いた処理を三項演算子で書き直すと以下のようになる。

PHP
function sort(string $dir, array $arr): array {
  $dir == 'R' ? sort($arr): rsort($arr);
  return $arr;
}

三項演算子を用いることで行数が半分になった。

最後に

他の方も同じソースコードを触ることを考え,より分かりやすく簡潔なコードを作成することを心掛けていきたい。その手法の1つとして三項演算子を使っていこうと思う。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?