0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エルビス演算子を使うときの注意点

Last updated at Posted at 2022-09-25

前置き

三項演算子を省略できる書き方で、エルビス演算子「?:」というものがありますが、
自分が間違えた使い方をしていた為、共有したいと思い記事にしました。

エルビス演算子の間違えた使い方

    $a = 15;

    $b = $a === 15 ?: 17;

私は、この$bの期待値としては「15」であると思っていました。
しかし、この$bの値は「true」になっていました。

これは「$a === 15」の結果がtureの為、三項演算子の条件式的には「$a === 15」を返します。
言い換えると下記のようなコードに置き換えることができます。

    $a = 15;

    $b = $a === 15 ? $a === 15: 17;

これを見ると$bの値は「true」になるのがわかります。これと同じ現象が起きているというわけです。

エルビス演算子の正しい使い方

    $a = 15;
    $b = $a ?: 17;

    //言い換えると

    $a = 15;
    $b = $a ? $a : 17;

$aがtrueと同等の場合は「15」、それ以外の場合は「17」になります。それ以外の場合というのは「false, null, 0, '', [] 」あたりです。

まとめ

エルビス演算子について紹介しました。
正しく使うとコードが短くなる、わかりやすくなる、読みやすくなる、といったメリットがあります。
是非使ってみてはいかがでしょうか?

参考文献

【PHPなど】エルビス演算子 ?: 本当にエルビス・プレスリーだった【画像あり】
https://qiita.com/ito_gen/items/7650454fbb27baefc1f7
PHPの便利な演算子でコードを短くしよう!
https://learningbox.co.jp/2021/06/15/blog_php-code/

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?