Help us understand the problem. What is going on with this article?

【PHPなど】エルビス演算子 ?: 本当にエルビス・プレスリーだった【画像あり】

こんにちは。
エルビス・オペレーター・エバンジェリストの@ito_genです。
今回はエルビス演算子について調べたストーリーを語ります。

ストーリーはPHP7のnull合体演算子から始まる

PHPで配列の要素を扱う際に、存在しないキーを指定するとNoticeを吐いてしまう。
PHP7から導入されたNull合体演算子を使うと、これをシンプルな記述で回避できます。

いままで

$hoge = isset($_GET['hoge']) ? $_GET['hoge'] : null;

これから(PHP7)

$hoge = $_GET['hoge'] ?? null;

これでisset() ?地獄から解放されますね。

エルビス演算子というのがあるらしい

null合体演算子について調べていたら、エルビス演算子というのがあることを知りました。

null合体演算子(PHP7から)
??

エルビス演算子(PHP5.3から)
?:

エルビス演算子はnull合体演算子とは違って存在チェックはできないのですが、似ています。
左辺がfalseと同等の値(falsyと言ったりします)の場合に右辺の値を返します。
nullだけでなく、0や空文字、空配列もfalsyな値です。

$hoge = $_GET['hoge'] ?: null;

// ↑ 同じ動き ↓

if ($_GET['hoge']) ? $_GET['hoge'] : null;

エルビス演算子の由来は?

それにしても特徴的な名前ですよね。
エルビスといえばエルビス・プレスリーが有名ですが、このエルビス演算子のエルビスは何のエルビスとはなんでしょうか?

Wikipediaを見てみましょう。

エルビス演算子はエルビス・プレスリーの顔文字(emoticon)に形が似ていることからこう呼ばれる

エルビス演算子 - Wikipedia

なん・・・だと・・・

?がリーゼント部分、:が目のようです。
:) とか :D とかの英語圏でよく使われる顔文字と同じ見方ですね。

画像集

elvis-operator.png

The Elvis Operator – DobsonDev

a1913815034_16.jpg

The Elvis Operator

kotlin-maybe-its-the-right-time-37-638.jpg

Kotlin: maybe it's the right time

ito_gen
エルビス・オペレーター・エバンジェリスト
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away