LoginSignup
53
33

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-04-24

こんにちは。
エルビス・オペレーター・エバンジェリストの@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

53
33
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
53
33