【PHP】宇宙船演算子の解説

PHP7から新機能で使えるようになった宇宙船演算子ですが、これってよく聞かれるのですが、「本当に意味あるの?」「有用?」「意味がわからない」など周りから質問されるので解説したいと思います。

使いこなせば、役立つはずです。

PHP:新機能 - Manual 宇宙船演算子


宇宙船演算子

PHPマニュアルから転記させていただきました。

<?php
// 整数値
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// 浮動小数点数値
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// 文字列
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

ぶっちゃけこれだけだとわかりづらいです。なので以下のように覚えてください。

  •  0・・・1 = 1 左右で同一の値
  • -1・・・1 < 2 右の項目が大きい
  •  1・・・2 > 1 左の項目が大きい

厳密なチェックを行っていないので「==」と同じ動作を行います。

なので使用する前に必要なら型チェックを行ってください。


宇宙船演算子を使ってみる

前述した内容だけだと宇宙船演算子の有用性がわかりづらいです。

普通にif文でいいじゃんって思ってしまいます。

ですが本当は結構使えるやつのはずなのです。

下記はサンプルコードです。


if文での使用を考えると普通に宇宙船演算子を活躍させるのは難しいです。

むしろ宇宙船演算子はswitch文にしたらとても光ると考えています!


サンプルコードですと、利益判定を行うコードにしています。

このように左右で値がどちらかが多い場合に別々の処理を行いたい場合等に活用できます。


まとめ

簡単に宇宙船演算子を説明しましたが、未だに私も仕事では使ったことないですね・・・

ただ、私も宇宙船演算子の説明を求められた際にif文だと使いづらい感じがしましたが、switch文にするとしっくり来ました。

0 件のコメント :

コメントを投稿