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

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

More than 1 year has passed since last update.

こんにちは。
エルビス・オペレーター・エバンジェリストの@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合体演算子とは違って存在チェックはできないのですが、左辺がnullだったら右辺の値を返す、というとても良く似た動きをします。

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

// ↑ 同じ動き ↓

$hoge = ($_GET['hoge'] === null) ? $_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

Why do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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