【PHPコード簡略化計画①】エルビス演算子が強い

JavaScript
composita / Pixabay
この記事は約3分で読めます。

皆さんこんにちは。
令和初日にはしゃいで7万失ったやらしみずですはぁ、、、

コード簡略化計画はじめました!

プログラミングをきれいに書いたりする方法って、ネットに散らばっていてどれがいいのか自分でもかなりわかりづらいので、今私がお仕事で使っているPHPだけに関しては、コードを短く書く方法まとめておいて、後世のPHPer達に残して行きたいと思います!!

すごいぞ!エルビス演算子!

変数に何かを代入するときに条件をつけたいことが良くあると思います。
その中でも「もしAが空だったらBを代入したい」というのは結構書くことが多いものだと思います。

エルビス演算子はそんなコードを短く書けるようにしてくれます!!
PHPを使った例を上げます。

# 普通にif文を使って書いた場合
if ($_POST["input_data1"] !== null ){
    $data = $_POST["input_data1"];
} else {
    $data = $_POST["input_data2"];
}
# 三項演算子を使って書いた場合
$data = ($_POST["input_data1"] !== null ) ? $_POST["input_data1"] : $_POST["input_data2"];

# ちなみにこれでも可
$data = $_POST["input_data1"] ? $_POST["input_data1"] : $_POST["input_data2"];

上記の三項演算子の時点でもかなりコードが短くなっていますが、エルビス演算子を使うと更に短くかけます。

# エルビス演算子を使って書いた場合
$data = $_POST["input_data1"] ?: $_POST["input_data2"];

おお、、、最初5行だったコードが一行になり、しかもかなり小さくなりましたね。
エルビス演算子すげー。

名前の由来

?:が、外国の顔文字でリーゼントの人の顔に見えるので、「エルビス・プレリー」から取ってエルビス演算子らしいです。

作者の名前とかでは無いと言うのが面白いですね笑

使える言語

似たような書き方が他の言語でも有るのでそれもまとめて見ます。

Pearl

# Pearl
$foo = $a || $b;

Python

# Python
foo = a or b

JavaScript

// JavaScript
var foo = a || b;

もともとエルビスさんから取っているので、||とかをエルビス演算子と言うのは厳密には違うのだろうけれど、みんなこの構文のことをエルビス演算子って読んでるから形はもう関係無いらしいです。

コメント

タイトルとURLをコピーしました