phpの三項演算子の一種エルビス演算子

  • 2018年12月4日
  • 2018年12月5日
  • PHP

PHP: 比較演算子 – Manual

PHP 5.3 以降では、三項演算子のまんなかの部分をなくすこともできるようになりました。 式 expr1 ?: expr3 の結果は、expr1 が TRUE と同等の場合は expr1、 それ以外の場合は expr3 となります。

 phpの三項演算子は真ん中の部分を省略して記述することが出来ます。この記述?:はエルビス・プレスリーの顔文字にならってエルビス演算子と通称されています。google画像検索などではエルビス・プレスリーの写真に?:を当てはめた画像が大量にヒットします。エルビス演算子による記述を用いたコードは次の様になります。

$c = $a ? $a : $b;
$c = $a ?: $b;

 {}もelseも必要にならないが条件分岐が欲しいときはよくあります。特定の条件――次の例では投稿された記事の編集権限の有無――によって早期returnを促すガード節はエルビス演算子を用いることによって簡単に記述できます。

auth()->user()->hasAccess($edit_post) ?: abort('403');

 null合体演算子??は$hoge ?? $fugaでisset($hoge) ? $hoge : $fugaという式を表していたのに対し、エルビス演算子は緩やかな比較を用いたTRUEであるか否かの式を表します。$hoge ?: $fugaならば $hoge == true ? $hoge : $fugaといった具合です。これにより次の画像の様な違いが現れます。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG