エルビス演算子について


こんにちは森田です。
さっそくですが、みなさん「エルビス演算子」って使ったことありますか?
フロントエンドですとあまり聞き慣れないかもしれませんが、由来なども面白かったので紹介します。

エルビス演算子とは

エルビス演算子(elvis operator)は ?: という記号を用います。
今回は PHP で書いてみます。

$hoge = $a ?: $b;

$a が true だったら $a をそのまま返し、false だったら $b を返します。

三項演算子で同じように書くと以下のようになります。

$hoge = $a ? $a : $b;

?: って三項演算子をくっつけたような見た目ですよね 。
実際、三項演算子のシンタックスシュガーという扱いらしいです。

JavaScript にエルビス演算子は使える?

使えないです。仕様としてありません。

しかし、以下のように論理和演算子で同様のことができます。

const hoge = a || b;

これでもエルビス演算子と同様に、a が true だったら a をそのまま返し、false だったら b を返します。
React の JSX の中でよく使うお馴染みの書き方ですね。

エルビス演算子は日本語ではなんと言う?

比較演算子や倫理演算子など演算子は日本語で呼びがちですが、エルビス演算子は日本語呼びは無く、そのまま「エルビス演算子」と呼びます。

というのも、 ?: が エルビス・プレスリーに似ていることが由来だそうです。
90度回転させて、? がリーゼント、: が目みたいです。

?:

見えるような、見えないような、、

関連リンク


投稿者 Morita Sou

フロントエンドグループチームマネージャー。
適切な技術提案やプロジェクトを円滑に進めるコミュニケーションを心掛けています。
CMS構築や開発環境の構築・最適化などを得意としています。チームビルティングと採用と開発環境を快適にすることにいつも燃えています。